Asias He b98d95ebf0 repair: Remove all row level repair during shtudown
We saw dtest failed to stop a node like:

```
ERROR: repair_one_missing_row_test (repair_additional_test.RepairAdditionalTest)
----------------------------------------------------------------------
Traceback (most recent
[2019.1.3.node1.repair.zip](https://github.com/scylladb/scylla/files/2723244/2019.1.3.node1.repair.zip)
 call last):
  File "/home/asias/src/cloudius-systems/scylla-dtest/repair_additional_test.py", line 2521, in repair_one_missing_row_test
    return RepairAdditionalBase._repair_one_missing_row_test(self)
  File "/home/asias/src/cloudius-systems/scylla-dtest/repair_additional_test.py", line 1842, in _repair_one_missing_row_test
    self.check_rows_on_node(node2, nr_rows)
  File "/home/asias/src/cloudius-systems/scylla-dtest/repair_additional_test.py", line 34, in check_rows_on_node
    node.stop(wait_other_notice=True)
  File "/home/asias/src/cloudius-systems/scylla-ccm/ccmlib/scylla_node.py", line 496, in stop
    raise NodeError("Problem stopping node %s" % self.name)
NodeError: Problem stopping node node1
```

The problem is:

1) repair_meat is created
repair_meta -> repair_writer::create_writer() -> t.stream_in_progress()
repari_meta -> repair_reader::repair_reader -> cf.read_in_progress()

2) repair_meta is stored in _repair_metas map.

3) Shtudown repair, repair_meta is not removed from the _repair_metas map

4) Shutdown database which wait for the utils::phased_barrier.

To fix, we should stop and remove all the repair_meata from the _repair_metas map.

Tests: 30 successful runs of the repair_kill_2_test

Fixes: #4044
2019-04-02 19:28:53 +08:00
2019-03-28 14:21:10 +02:00
2019-03-22 09:08:51 +08:00
2018-11-21 00:01:44 +02:00
2019-03-22 09:08:51 +08:00
2018-08-01 16:50:58 +01:00
2018-12-03 11:18:02 +02:00
2018-11-26 18:59:41 +01:00
2019-03-28 14:21:10 +02:00
2019-03-24 00:34:09 +09:00
2019-03-26 14:33:37 +02:00
2019-03-28 14:21:10 +02:00
2018-11-27 13:01:02 +02:00
2019-03-20 13:35:26 +02:00
2019-03-28 14:21:10 +02:00
2018-06-19 16:26:51 +03:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2019-03-28 14:21:10 +02:00
2019-02-20 08:03:46 -08:00
2018-11-21 00:01:44 +02:00
2018-02-14 14:15:59 -05:00
2019-01-22 15:34:32 +02:00
2019-02-20 08:03:46 -08:00
2019-02-20 08:03:46 -08:00
2018-11-01 13:16:17 +00:00
2019-03-28 14:21:10 +02:00
2019-02-11 09:25:25 +01:00
2018-11-28 23:54:03 +01:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2018-11-21 00:01:44 +02:00
2018-12-12 16:49:01 +08:00

Scylla

Quick-start

$ git submodule update --init --recursive
$ sudo ./install-dependencies.sh
$ ./configure.py --mode=release
$ ninja-build -j4 # Assuming 4 system threads.
$ ./build/release/scylla
$ # Rejoice!

Please see HACKING.md for detailed information on building and developing Scylla.

Note: GCC >= 8.1.1 is require to compile Scylla.

Note: See frozen toolchain for a way to build and run on an older distribution.

Running Scylla

  • Run Scylla
./build/release/scylla

  • run Scylla with one CPU and ./tmp as data directory
./build/release/scylla --datadir tmp --commitlog-directory tmp --smp 1
  • For more run options:
./build/release/scylla --help

Building Fedora RPM

As a pre-requisite, you need to install Mock on your machine:

# Install mock:
sudo yum install mock

# Add user to the "mock" group:
usermod -a -G mock $USER && newgrp mock

Then, to build an RPM, run:

./dist/redhat/build_rpm.sh

The built RPM is stored in /var/lib/mock/<configuration>/result directory. For example, on Fedora 21 mock reports the following:

INFO: Done(scylla-server-0.00-1.fc21.src.rpm) Config(default) 20 minutes 7 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-21-x86_64/result

Building Fedora-based Docker image

Build a Docker image with:

cd dist/docker
docker build -t <image-name> .

Run the image with:

docker run -p $(hostname -i):9042:9042 -i -t <image name>

Contributing to Scylla

Guidelines for contributing

Description
No description provided
Readme 487 MiB
Languages
C++ 72.1%
Python 26.7%
CMake 0.3%
GAP 0.3%
Shell 0.3%