On Mon, Dec 28, 2015 at 8:42 PM, Karel Gardas <[email protected]> wrote: >> I've seen your HEAD changes, I'm on 2dd25909da and the >> space-effeciency is really nice to have. I'm not sure if this is >> faster than in the past since I'm not testing on the same hardware >> setup. I'll see if it crashes or not and if not, then I'll fire on the >> original test server and test there. > > So this first test done on Solaris 11.2/xeon e5-2620 repo allocated on > tmpfs went find and took 32 hours.
Just for the record, in an attempt to test clone from this converted repo to the same tmpfs I got segfault: karel@silence:/tmp/fossil-test$ time /opt/fossil-head/bin/fossil clone /tmp/bitrig2.fossil bitrig2.fossil Repository cloned into bitrig2.fossil Rebuilding repository meta-data... 100.0% complete... Extra delta compression... Vacuuming the database... Segmentation Fault (core dumped) real 231m20.722s user 229m58.528s sys 0m32.907s the backtrace looks: karel@silence:/tmp/fossil-test$ dbx /opt/fossil-head/bin/fossil core For information about new features see `help changes' To remove this message, put `dbxenv suppress_startup_message 8.0' in your .dbxrc Reading fossil core file header read successfully Reading ld.so.1 Reading libssl.so.1.0.0 Reading libcrypto.so.1.0.0 Reading libz.so.1 Reading libnsl.so.1 Reading libsocket.so.1 Reading libm.so.2 Reading libc.so.1 program terminated by signal SEGV (no mapping at the fault address) 0xfe402a26: realfree+0x0044: movl (%edx),%eax Current function is sqlite3MemMalloc (optimized) 18265 p = SQLITE_MALLOC( nByte+8 ); (dbx) where [1] realfree(0x836c708, 0xfe505000, 0xfeffdc08, 0xfe4030b1), at 0xfe402a26 [2] cleanfree(0x0, 0xfe505000, 0xfeffdc48, 0xfe402441), at 0xfe4030f7 [3] _malloc_unlocked(0xb8), at 0xfe4024c6 [4] malloc(0xb8, 0x0, 0xfeffdca8, 0x8136525), at 0xfe402400 =>[5] sqlite3MemMalloc(nByte = 176) (optimized), at 0x81364cc (line ~18265) in "sqlite3.c" [6] mallocWithAlarm(n = 174, pp = 0xfeffdcec) (optimized), at 0x8136a2b (line ~21924) in "sqlite3.c" [7] sqlite3Malloc(n = <value unavailable>) (optimized), at 0x8136ab4 (line ~21955) in "sqlite3.c" [8] sqlite3DbMallocRaw(db = 0x8319118, n = 174ULL) (optimized), at 0x813725a (line ~22323) in "sqlite3.c" [9] sqlite3DbStrNDup(db = 0x8319118, z = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)", n = 173ULL) (optimized), at 0x813756f (line ~22408) in "sqlite3.c" [10] sqlite3VdbeSetSql(p = 0x834cbe0, z = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)", n = 173, isPrepareV2 = 0) (optimized), at 0x815ada1 (line ~67347) in "sqlite3.c" [11] sqlite3Prepare(db = 0x8319118, zSql = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)", nBytes = -1, saveSqlFlag = 0, pReprepare = (nil), ppStmt = 0xfeffde4c, pzTail = (nil)) (optimized), at 0x818f074 (line ~109416) in "sqlite3.c" [12] sqlite3LockAndPrepare(db = 0x8319118, zSql = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)", nBytes = -1, saveSqlFlag = 0, pOld = (nil), ppStmt = 0xfeffde4c, pzTail = (nil)) (optimized), at 0x818f1e5 (line ~109467) in "sqlite3.c" [13] sqlite3_prepare(db = 0x8319118, zSql = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)", nBytes = -1, ppStmt = 0xfeffde4c, pzTail = (nil)) (optimized), at 0x818f311 (line ~109531) in "sqlite3.c" [14] execSql(db = 0x8319118, pzErrMsg = 0x8926a4c, zSql = 0x239ccdf0 "CREATE TABLE vacuum_db.blob(\n rid INTEGER PRIMARY KEY,\n rcvid INTEGER,\n size INTEGER,\n uuid TEXT UNIQUE NOT NULL,\n content BLOB,\n CHECK( length(uuid)==40 AND rid>0 )\n)") (optimized), at 0x819a816 (line ~117436) in "sqlite3.c" [15] execExecSql(db = 0x8319118, pzErrMsg = 0x8926a4c, zSql = 0x82e6690 "SELECT 'CREATE TABLE vacuum_db.' || substr(sql,14) FROM sqlite_master WHERE type='table' AND name!='sqlite_sequence' AND coalesce(rootpage,1)>0") (optimized), at 0x819a8e3 (line ~117457) in "sqlite3.c" [16] sqlite3RunVacuum(pzErrMsg = 0x8926a4c, db = 0x8319118) (optimized), at 0x819aba2 (line ~117631) in "sqlite3.c" [17] sqlite3VdbeExec(p = 0x8926a20) (optimized), at 0x81629e2 (line ~79778) in "sqlite3.c" [18] sqlite3Step(p = 0x8926a20) (optimized), at 0x81607ef (line ~72313) in "sqlite3.c" [19] sqlite3_step(pStmt = 0x8926a20) (optimized), at 0x81608fa (line ~72375) in "sqlite3.c" [20] db_multi_exec(zSql = 0x8289c74 "VACUUM", ... = <value unavailable>, ...) (optimized), at 0x80b30c4 (line ~553) in "db.c" [21] clone_cmd() (optimized), at 0x80ac9d9 (line ~219) in "clone.c" [22] main(argc = 4, argv = 0xfeffe3fc) (optimized), at 0x80df2c1 (line ~804) in "main.c" (dbx) I'm not sure if this is related, but I've not followed the process for whole time, but seen that during the meta-data rebuild it quite grows in memory. While being at 37% of rebuild it was already eating around 330 MB of RAM. So my idea is, the crash above may also mean that whole memory is consumed (this is 32bit binary). I will retest the same and see how memory consumption develops. _______________________________________________ fossil-users mailing list [email protected] http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

