mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-07 07:23:15 +00:00
378f2ba8e4b2c40b42b71308155c8dfcc911dc5d
Raphael recently caught this test failing. I can't really reproduce it, but it seems to me that it is a timing issue: we execute two different statements, each one should timeout after 10ms. After 20ms, we make sure that they both timed out. They don't (in his system), which is explained by the fact that we are no longer using high resolution clocks for the timeouts. Expirations for lowres clocks will only happen at every 10ms, and in the worst case we will miss twoa. So the fix I am proposing here is to just account for potential innacuracies in the clocks and calculations by waiting a bit longer. Ideally, we would use the manual clock for this. But in this case, this would mean adding template parameters to pretty much all of the mutation_reader path. Currently, not only the test failed, it also had an use-after-free SIGSEGV. That happens because we give up on the reader while the timeouts is still to happen. It is the caller responsibility to ensure the lifetime of the reader is correct. Dealing with that cleanly would require a cancelation mechanism that we don't have, so we'll just add an assertion that will fail more gracefully than the SIGSEGV. Signed-off-by: Glauber Costa <glauber@scylladb.com>
…
…
…
…
…
…
…
…
…
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.
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%