mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-03 21:47:10 +00:00
b98d95ebf02b4ef9fa0d36a860c695649b8f7e65
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
…
…
…
…
…
…
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
Description
Languages
C++
72.1%
Python
26.7%
CMake
0.3%
GAP
0.3%
Shell
0.3%