Package Details: scylla 2.2.0-1

Git Clone URL: https://aur.archlinux.org/scylla.git (read-only)
Package Base: scylla
Description: Scylla is an open source NoSQL drop-in replacement for Apache Cassandra with fast throughput and low latency
Upstream URL: http://www.scylladb.com/
Licenses: AGPL
Conflicts: cassandra, scylla-git
Provides: scylla
Submitter: kiz
Maintainer: Argenet (dahankzter)
Last Packager: Argenet
Votes: 6
Popularity: 0.247413
First Submitted: 2017-03-13 07:28
Last Updated: 2018-07-19 02:53

Required by (1)

Sources (8)

Pinned Comments

Argenet commented on 2018-01-05 18:07

Please note that compiling ScyllaDB is a resource-consuming operation that uses a lot of memory and puts extra load on CPU.

Latest Comments

1 2 3 Next › Last »

Argenet commented on 2018-07-19 03:10

Appears it was too early to try to switch it to using GCC8... I have reverted that back so that now it should compile fine with GCC7.

dahankzter commented on 2018-07-18 07:42

Scylla fails to build for me with this compile error https://pastebin.com/uikVjQXw

suthernfriend commented on 2018-06-08 14:17

@Argenet

Thanks a lot. I would have never had the idea that it is a bug / problem with GCC.

The official arch repos actually provide packages for gcc 7 which can be installed parallel to the standard gcc packages: gcc7 gcc7-libs

i was able to compile it; it used like 32 gb ram lol

patch for PKGBUILD:

diff --git a/PKGBUILD b/PKGBUILD
index [`8473f21`](https://aur.archlinux.org/cgit/aur.git/commit/?h=scylla&id=8473f21)..f519fb1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
 # Main package information
 pkgname=scylla
 pkgver=2.1.3
-pkgrel=1
+pkgrel=2
 pkgdesc="Scylla is an open source NoSQL drop-in replacement for Apache Cassandra with fast throughput and low latency"
 arch=('x86_64')
 url="<http://www.scylladb.com/>"
@@ -17,7 +17,7 @@ depends=('hwloc' 'systemd' 'collectd' 'python-yaml' 'python2-yaml' 'python-urwid
 optdepends=('scylla-jmx: JMX interface for compatibility with tooling such as nodetool'
             'scylla-tools: Tools to be used with ScyllaDB, such as cqlsh, nodetool and others')

-makedepends=('git' 'gcc' 'antlr3-cpp-headers-git' 'libyaml' 'yaml-cpp'
+makedepends=('git' 'gcc7' 'antlr3-cpp-headers-git' 'libyaml' 'yaml-cpp'
                 'lz4' 'zlib' 'snappy' 'jsoncpp' 'gnutls' 'ninja'
                 'ragel' 'libaio' 'crypto++' 'xfsprogs' 'jre8-openjdk-headless'
                 'numactl' 'libpciaccess' 'libxml2' 'thrift-0.10.0' 'lksctp-tools'
@@ -57,7 +57,7 @@ build() {
     cd "$srcdir/${pkgname}"
     sed -i -e 's@sizeof(byte)@sizeof(CryptoPP::byte)@g' md5_hasher.hh repair/repair.cc
     sed -i -e 's@reinterpret_cast<const byte@reinterpret_cast<const CryptoPP::byte@g' md5_hasher.hh repair/repair.cc
-    ./configure.py --mode=release
+    ./configure.py --mode=release --compiler=g++-7 --c-compiler=gcc-7
     JOBS=`nproc --all`
     # It turns out that on maximum jobs compiler often runs out of memory and crashes
     # Let's be conservative and assign only half of the available CPU threads

Argenet commented on 2018-06-07 23:39

Hi @suthernfriend,

I guess you are trying to compile Scylla with GCC 8, right? Unfortunately, there are several regressions introduced in GCC 8 that cause it to fail when compiling Scylla. Scylla developers have opened bugs with GCC for those:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85642
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84769
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947

(there was something else, but I can't find relevant links at the moment).

The bottom line is, GCC 8 is buggy and fails with Scylla. The problem is that now it is shipped from Arch repositories so it is not easy to compile Scylla until the fixed version (hopefully, GCC 8.2 contains those fixes) is out.

One thing you can do is, if you maintain a cache of packages installed with pacman, you can manually downgrade GCC to version 7 and try with it. GCC 7.3 is known to work well with Scylla on Arch.

suthernfriend commented on 2018-06-06 07:53

i'm getting a lot of cc1plus: all warnings being treated as errors any idea how i can fix?

with adding --cflags="-Wno-error" i get the following:

/usr/include/boost/type_traits/has_nothrow_constructor.hpp:27:84:
error: ‘constexpr flat_mutation_reader::flat_mutation_reader()’ is private within this context

full output with the current PKGBUILD: https://hastebin.com/ixuqoqodeq.php

full output with --cflags="-Wno-error" added to configure script: https://hastebin.com/eliwoyolez.scala

environment:

hwloc 1.11.10-1
systemd 238.133-1
collectd 5.8.0-5
python-yaml 3.12-3
python2-yaml 3.12-3
python-urwid 2.0.1-1
pciutils 3.5.6-1
python-pyparsing 2.2.0-1
python2-requests 2.18.4-1
util-linux 2.32-3
python-pyudev 0.21.0-2
python-setuptools 1:39.2.0-2
boost 1.66.0-3
boost-libs 1.66.0-3
git 2.17.1-1
gcc 8.1.0-1
antlr3-cpp-headers-git r572.5c2a916-1
libyaml 0.1.7-1
yaml-cpp 0.6.2-1

dahankzter commented on 2018-05-07 05:45

I can't build now it complains about a git commit not existing:

==> Validating source files with md5sums...
    scylla ... Skipped
    scylla-ami ... Skipped
    scylla-swagger-ui ... Skipped
    scylla-seastar ... Skipped
    fmt ... Skipped
    dpdk ... Skipped
    c-ares ... Skipped
==> Extracting sources...
  -> Creating working copy of scylla git repo...
Cloning into 'scylla'...
done.
fatal: 'scylla-2.1.3' is not a commit and a branch 'makepkg' cannot be created from it

Argenet commented on 2018-03-05 21:55

That looks reasonable. I have also added it to the PKGBUILD file so it will use half of the CPU threads unless the CPU only has one (quite a corner case).

Glad it finally compiled well for you and thanks for your help with reporting and resolving the issues.

mgd commented on 2018-03-05 19:50

I got it compiled using

ninja -j $(($(nproc --all)/2)) ...

Argenet commented on 2018-03-04 21:44

Thanks for the follow-up. I'll include those seds for repair/repair.cc into the PKGBUILD, have missed them.

It is saddening that even 32GB RAM is not sufficient for Scylla when running build on all CPU threads :( Still, you might want to reduce it not to a single job, but at least 4 jobs to get it done faster.

Maybe it makes sense to put some value lower than nproc --all into PKGBUILD to ensure that it doesn't fail this way.

mgd commented on 2018-03-04 21:17

Hi Argenet,

Meanwhile I have done further investigations myself.

Directly issuing the offending command works w/o error. I then changed PKGBUILD and replaced ninja -jnproc --all in the build() section by ninja -j 1 (nproc --all yields 8 on my system).

I also had to add another pair of sed work arounds: sed -i -e 's@sizeof(byte)@sizeof(CryptoPP::byte)@g' repair/repair.cc sed -i -e 's@reinterpret_cast<const byte@reinterpret_cast<const CryptoPP::byte@g' repair/repair.cc

The thus adjusted PKGBUILD seems to work but is still running aka takes a small eternity to complete.

W/r to memory: My system has 32GB of RAM which according to your mail should be fine with 8 processes per 2GB.