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

Reply via email to