Edgewall Software
Modify

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#3790 closed defect (wontfix)

trac segfault

Reported by: exarkun@… Owned by:
Priority: normal Milestone:
Component: general Version: 0.10rc1
Severity: major Keywords: pysqlite svn crash
Cc: exarkun@… Branch:
Release Notes:
API Changes:

Description

Stack trace

#0  0xb6da4e40 in sqlite3Pragma () from /usr/lib/libsqlite3.so.0
#1  0xb6da4ee2 in sqlite3Pragma () from /usr/lib/libsqlite3.so.0
#2  0xb6da635a in sqlite3_snprintf () from /usr/lib/libsqlite3.so.0
#3  0xb6db831a in sqlite3VdbeMemStringify () from /usr/lib/libsqlite3.so.0
#4  0xb6db878f in sqlite3ValueText () from /usr/lib/libsqlite3.so.0
#5  0xb6db87c2 in sqlite3ValueBytes () from /usr/lib/libsqlite3.so.0
#6  0xb6db5265 in sqlite3_value_bytes () from /usr/lib/libsqlite3.so.0
#7  0xb6e30ab4 in _fetch_one_row () from /usr/lib/python2.4/site-packages/pysqlite2/_sqlite.so
#8  0xb6e31dda in cursor_iternext () from /usr/lib/python2.4/site-packages/pysqlite2/_sqlite.so
#9  0xb6e31e5a in cursor_fetchone () from /usr/lib/python2.4/site-packages/pysqlite2/_sqlite.so
#10 0x080b61c3 in PyEval_EvalFrame ()
#11 0x080f9441 in PyDescr_NewGetSet ()
#12 0x080b1a36 in PyEval_EvalFrame ()
#13 0x080b580c in PyEval_EvalFrame ()
#14 0x080b580c in PyEval_EvalFrame ()
#15 0x080b580c in PyEval_EvalFrame ()
#16 0x080b726d in PyEval_EvalCodeEx ()
#17 0x080b5719 in PyEval_EvalFrame ()
#18 0x080b580c in PyEval_EvalFrame ()
#19 0x080b580c in PyEval_EvalFrame ()
#20 0x080b580c in PyEval_EvalFrame ()
#21 0x080b726d in PyEval_EvalCodeEx ()
#22 0x080fb6fd in PyFunction_SetClosure ()
#23 0x0805950c in PyObject_Call ()
#24 0x0805eac5 in PyMethod_New ()
#25 0x0805950c in PyObject_Call ()
#26 0x080afed7 in PyEval_CallObjectWithKeywords ()
#27 0x080594e3 in PyObject_CallObject ()
#28 0x080edb2c in init_sre ()
#29 0x080edfbf in init_sre ()
#30 0x080b6a11 in PyEval_EvalFrame ()
#31 0x080b726d in PyEval_EvalCodeEx ()
#32 0x080b5719 in PyEval_EvalFrame ()
#33 0x080b726d in PyEval_EvalCodeEx ()
#34 0x080fb6fd in PyFunction_SetClosure ()
#35 0x0805950c in PyObject_Call ()
#36 0x0805eac5 in PyMethod_New ()
#37 0x0805950c in PyObject_Call ()
#38 0x080b4bf7 in PyEval_EvalFrame ()
#39 0x080b726d in PyEval_EvalCodeEx ()
#40 0x080b5719 in PyEval_EvalFrame ()
#41 0x080b726d in PyEval_EvalCodeEx ()
#42 0x080b5719 in PyEval_EvalFrame ()
#43 0x080b580c in PyEval_EvalFrame ()
#44 0x080b580c in PyEval_EvalFrame ()
#45 0x080b726d in PyEval_EvalCodeEx ()
#46 0x080b5719 in PyEval_EvalFrame ()
#47 0x080b580c in PyEval_EvalFrame ()
#48 0x080b580c in PyEval_EvalFrame ()
#49 0x080b726d in PyEval_EvalCodeEx ()
#50 0x080fb6fd in PyFunction_SetClosure ()
#51 0x0805950c in PyObject_Call ()
#52 0x0805eac5 in PyMethod_New ()
#53 0x0805950c in PyObject_Call ()
#54 0x080afed7 in PyEval_CallObjectWithKeywords ()
#55 0x080594e3 in PyObject_CallObject ()
#56 0x080edb2c in init_sre ()
#57 0x080edfbf in init_sre ()
#58 0x080b6a11 in PyEval_EvalFrame ()
#59 0x080b726d in PyEval_EvalCodeEx ()
#60 0x080b5719 in PyEval_EvalFrame ()
#61 0x080b726d in PyEval_EvalCodeEx ()
#62 0x080b5719 in PyEval_EvalFrame ()
#63 0x080b726d in PyEval_EvalCodeEx ()
#64 0x080b5719 in PyEval_EvalFrame ()
#65 0x080b580c in PyEval_EvalFrame ()
#66 0x080b580c in PyEval_EvalFrame ()
#67 0x080b580c in PyEval_EvalFrame ()
#68 0x080b580c in PyEval_EvalFrame ()
#69 0x080b580c in PyEval_EvalFrame ()
#70 0x080b726d in PyEval_EvalCodeEx ()
#71 0x080fb6fd in PyFunction_SetClosure ()
#72 0x0805950c in PyObject_Call ()
#73 0x0805eac5 in PyMethod_New ()
#74 0x0805950c in PyObject_Call ()
#75 0x0808ac77 in _PyType_Lookup ()
#76 0x0805950c in PyObject_Call ()
#77 0x080b4bf7 in PyEval_EvalFrame ()
#78 0x080b726d in PyEval_EvalCodeEx ()
#79 0x080fb6fd in PyFunction_SetClosure ()
#80 0x0805950c in PyObject_Call ()
#81 0x080b4d37 in PyEval_EvalFrame ()
#82 0x080b726d in PyEval_EvalCodeEx ()
#83 0x080fb6fd in PyFunction_SetClosure ()
#84 0x0805950c in PyObject_Call ()
#85 0x080b4d37 in PyEval_EvalFrame ()
#86 0x080b726d in PyEval_EvalCodeEx ()
#87 0x080fb6fd in PyFunction_SetClosure ()
#88 0x0805950c in PyObject_Call ()
#89 0x080b4d37 in PyEval_EvalFrame ()
#90 0x080b726d in PyEval_EvalCodeEx ()
#91 0x080fb6fd in PyFunction_SetClosure ()
#92 0x0805950c in PyObject_Call ()
#93 0x080b4d37 in PyEval_EvalFrame ()
#94 0x080b580c in PyEval_EvalFrame ()
#95 0x080b726d in PyEval_EvalCodeEx ()
#96 0x080fb6fd in PyFunction_SetClosure ()
#97 0x0805950c in PyObject_Call ()
#98 0x0805eac5 in PyMethod_New ()
#99 0x0805950c in PyObject_Call ()
#100 0x080afed7 in PyEval_CallObjectWithKeywords ()
#101 0x080e013d in _PyObject_GC_NewVar ()
#102 0xb7fc8361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0#103 0xb7f34bde in clone () from /lib/tls/i686/cmov/libc.so.6

Attachments (0)

Change History (15)

comment:1 by Christian Boos, 13 years ago

Keywords: pysqlite added
Owner: changed from Jonas Borgström to Christian Boos
Priority: normalhigh
Severity: normalmajor

Well, pysqlite2 segfaulted…

So the usual questions:

  • what version of PySqlite?
  • what version of SQLite?
  • was PySqlite built with the --enable-threadsafe configuration switch set?

in reply to:  1 comment:2 by Christian Boos, 13 years ago

Replying to cboos: > - was PySqlite built with the --enable-threadsafe configuration switch set? Sorry I meant SQLite in the above. Also, were other configuration options used?

comment:3 by exarkun@…, 13 years ago

Cc: exarkun@… added
  • SQLite 3.2.1
  • PySQLite 2.0.3
  • SQLite was built with --enable-threadsafe. The only other configure parameter was --with-tcl=/usr/lib/tcl8.4. CFLAGS was also set to -g -Wall -O2 -fno-strict-aliasing

comment:4 by Christian Boos, 13 years ago

Well, that SQLite version is nearly 2 years old. It's most probably a bug there, in printf.c. Try upgrading to 3.3.7 (and PySqlite 2.3.2 at that occasion).

The configuration you used was ok.

comment:5 by anonymous, 13 years ago

I've upgraded. I'll comment again if I see the problem again.

comment:6 by exarkun@…, 13 years ago

Another segfault - different backtrace, however:

#0  0xb6c1912b in svn_error_clear (err=0x2f) at subversion/libsvn_subr/error.c:273
#1  0xb6a35988 in svn_fs_bdb__wrap_db (fs=0x8b98fc0, operation=0xb6a4e02f "opening 'nodes' table", db_err=0)
    at subversion/libsvn_fs_base/bdb/bdb-err.c:93
#2  0xb6a3e006 in open_databases (fs=0x8b98fc0, create=0, path=0x8b98ac0 "/home/trac/svn/Twisted/db", pool=0x8b987c0)
    at subversion/libsvn_fs_base/fs.c:559
#3  0xb6a3e468 in base_open (fs=0x8b98fc0, path=0xb7ebc938 "", pool=0x8b987c0) at subversion/libsvn_fs_base/fs.c:685
#4  0xb7692a11 in svn_fs_open (fs_p=0x8b98a80, path=0x8b98ac0 "/home/trac/svn/Twisted/db", fs_config=0x0, pool=0x8b987c0)
    at subversion/libsvn_fs/fs-loader.c:367
#5  0xb6a1434d in get_repos (repos_p=0xb21fa57c, path=Variable "path" is not available.
) at subversion/libsvn_repos/repos.c:1803
#6  0xb68cf394 in _wrap_svn_repos_open (self=0x0, args=0x8d2284c) at ./subversion/bindings/swig/python/svn_repos.c:2047
#7  0x0805950c in PyObject_Call ()
#8  0x080afed7 in PyEval_CallObjectWithKeywords ()
#9  0x080a88ed in _PyUnicodeUCS4_IsNumeric ()
#10 0x080b6a11 in PyEval_EvalFrame ()
#11 0x080b726d in PyEval_EvalCodeEx ()
#12 0x080b5719 in PyEval_EvalFrame ()
#13 0x080b726d in PyEval_EvalCodeEx ()
#14 0x080fb6fd in PyFunction_SetClosure ()
#15 0x0805950c in PyObject_Call ()
#16 0x0805eac5 in PyMethod_New ()
#17 0x0805950c in PyObject_Call ()
#18 0x0808a965 in _PyType_Lookup ()
#19 0x0808ca88 in _PyObject_SlotCompare ()
#20 0x0805950c in PyObject_Call ()
#21 0x080b4bf7 in PyEval_EvalFrame ()
#22 0x080b580c in PyEval_EvalFrame ()
#23 0x080b580c in PyEval_EvalFrame ()
#24 0x080b726d in PyEval_EvalCodeEx ()
#25 0x080b5719 in PyEval_EvalFrame ()
#26 0x080b580c in PyEval_EvalFrame ()
#27 0x080b580c in PyEval_EvalFrame ()
#28 0x080b580c in PyEval_EvalFrame ()
#29 0x080b580c in PyEval_EvalFrame ()
#30 0x080b726d in PyEval_EvalCodeEx ()
#31 0x080fb6fd in PyFunction_SetClosure ()
#32 0x0805950c in PyObject_Call ()
#33 0x0805eac5 in PyMethod_New ()
#34 0x0805950c in PyObject_Call ()
#35 0x0808ac77 in _PyType_Lookup ()
#36 0x0805950c in PyObject_Call ()
#37 0x080b4bf7 in PyEval_EvalFrame ()
#38 0x080b726d in PyEval_EvalCodeEx ()
#39 0x080fb6fd in PyFunction_SetClosure ()
#40 0x0805950c in PyObject_Call ()
#41 0x080b4d37 in PyEval_EvalFrame ()
#42 0x080b726d in PyEval_EvalCodeEx ()
#43 0x080fb6fd in PyFunction_SetClosure ()
#44 0x0805950c in PyObject_Call ()
#45 0x080b4d37 in PyEval_EvalFrame ()
#46 0x080b726d in PyEval_EvalCodeEx ()
#47 0x080fb6fd in PyFunction_SetClosure ()
#48 0x0805950c in PyObject_Call ()
#49 0x080b4d37 in PyEval_EvalFrame ()
#50 0x080b726d in PyEval_EvalCodeEx ()
#51 0x080fb6fd in PyFunction_SetClosure ()
#52 0x0805950c in PyObject_Call ()
#53 0x080b4d37 in PyEval_EvalFrame ()
#54 0x080b580c in PyEval_EvalFrame ()
#55 0x080b726d in PyEval_EvalCodeEx ()
#56 0x080fb6fd in PyFunction_SetClosure ()
#57 0x0805950c in PyObject_Call ()
#58 0x0805eac5 in PyMethod_New ()
#59 0x0805950c in PyObject_Call ()
#60 0x080afed7 in PyEval_CallObjectWithKeywords ()
#61 0x080e013d in _PyObject_GC_NewVar ()
#62 0xb7eed361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#63 0xb7e59bde in clone () from /lib/tls/i686/cmov/libc.so.6

Versions of software now being used:

  • SQLite 3.3.7
  • PySQLite 2.3.2
  • Subversion 1.4.0
  • APR 0.9.12 (included with svn 1.4.0 utils)
  • APR Utils 0.9.12 (included with svn 1.4.0 utils)

in reply to:  6 comment:7 by Christian Boos, 13 years ago

Keywords: svn crash added

Replying to exarkun@divmod.com:

Another segfault - different backtrace, however:


#0 0xb6c1912b in svn_error_clear (err=0x2f) at subversion/libsvn_subr/error.c:273
#1 0xb6a35988 in svn_fs_bdb__wrap_db (fs=0x8b98fc0, operation=0xb6a4e02f \

"opening 'nodes' table", db_err=0) at subversion/libsvn_fs_base/bdb/bdb-err.c:93

Versions of software now being used:

  • SQLite 3.3.7
  • PySQLite 2.3.2

Good!

  • Subversion 1.4.0
  • APR 0.9.12 (included with svn 1.4.0 utils)
  • APR Utils 0.9.12 (included with svn 1.4.0 utils)

The crash involves svn_fs_bdb__wrap_db, so I bet there's an incompatibility between the BDB version expected by the APR (APR utils I think) you're using and the BDB lib that ends up being used.

Don't bother checking out the details and do yourself a favor by migrating to fsfs ;) (see TracSubversion#TracandSubversion1.2)

comment:8 by anonymous, 13 years ago

Another traceback, this time back to SQLite:

#0  sqlite3VdbeExec (p=0x85259d8) at ./src/vdbe.c:1926
#1  0xb6c80d28 in sqlite3_step (pStmt=0x85259d8) at ./src/vdbeapi.c:231
#2  0xb6ca04c8 in _sqlite_step_with_busyhandler (statement=0x85259d8, connection=0xb75d95c0) at src/util.c:33
#3  0xb6c9e48c in _query_execute (self=0xafb7872c, multiple=0, args=0xafc4082c) at src/cursor.c:611
#4  0xb6c9e9f2 in cursor_execute (self=0xafb7872c, args=0xafc4082c) at src/cursor.c:722
#5  0x0805950c in PyObject_Call ()
#6  0x080afed7 in PyEval_CallObjectWithKeywords ()
#7  0x080f835c in PyDictProxy_New ()
#8  0x0805950c in PyObject_Call ()
#9  0x080b4d37 in PyEval_EvalFrame ()
#10 0x080b726d in PyEval_EvalCodeEx ()
#11 0x080b5719 in PyEval_EvalFrame ()
#12 0x080b726d in PyEval_EvalCodeEx ()
#13 0x080b5719 in PyEval_EvalFrame ()
#14 0x080b726d in PyEval_EvalCodeEx ()
#15 0x080b5719 in PyEval_EvalFrame ()
#16 0x080b580c in PyEval_EvalFrame ()
#17 0x080b580c in PyEval_EvalFrame ()
#18 0x080b580c in PyEval_EvalFrame ()
#19 0x080b580c in PyEval_EvalFrame ()
#20 0x080b580c in PyEval_EvalFrame ()
#21 0x080b580c in PyEval_EvalFrame ()
#22 0x080b580c in PyEval_EvalFrame ()
#23 0x080b726d in PyEval_EvalCodeEx ()
#24 0x080fb6fd in PyFunction_SetClosure ()
#25 0x0805950c in PyObject_Call ()
#26 0x0805eac5 in PyMethod_New ()
#27 0x0805950c in PyObject_Call ()
#28 0x0808ac77 in _PyType_Lookup ()
#29 0x0805950c in PyObject_Call ()
#30 0x080b4bf7 in PyEval_EvalFrame ()
#31 0x080b726d in PyEval_EvalCodeEx ()
#32 0x080fb6fd in PyFunction_SetClosure ()
#33 0x0805950c in PyObject_Call ()
#34 0x080b4d37 in PyEval_EvalFrame ()
#35 0x080b726d in PyEval_EvalCodeEx ()
#36 0x080fb6fd in PyFunction_SetClosure ()
#37 0x0805950c in PyObject_Call ()
#38 0x080b4d37 in PyEval_EvalFrame ()
#39 0x080b726d in PyEval_EvalCodeEx ()
#40 0x080fb6fd in PyFunction_SetClosure ()
#41 0x0805950c in PyObject_Call ()
#42 0x080b4d37 in PyEval_EvalFrame ()
#43 0x080b726d in PyEval_EvalCodeEx ()
#44 0x080fb6fd in PyFunction_SetClosure ()
#45 0x0805950c in PyObject_Call ()
#46 0x080b4d37 in PyEval_EvalFrame ()
#47 0x080b580c in PyEval_EvalFrame ()
#48 0x080b726d in PyEval_EvalCodeEx ()
#49 0x080fb6fd in PyFunction_SetClosure ()
#50 0x0805950c in PyObject_Call ()
#51 0x0805eac5 in PyMethod_New ()
#52 0x0805950c in PyObject_Call ()
#53 0x080afed7 in PyEval_CallObjectWithKeywords ()
#54 0x080e013d in _PyObject_GC_NewVar ()
#55 0xb7fcd361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#56 0xb7f39bde in clone () from /lib/tls/i686/cmov/libc.so.6

This time I caught it live and checked some locals. The cursor variable was NULL and the SEGV happened when it was dereferenced. I hosed the process while trying to extract a Python stack trace. The environment is set up for this now, though, so next time I should be able to provide that as well.

comment:9 by exarkun@…, 13 years ago

Python backtrace from another segfault:

/home/trac/Projects/trac/trunk/trac/db/util.py (41): __iter__
/home/trac/Projects/trac/trunk/trac/versioncontrol/cache.py (173): get_changes
/home/trac/Projects/trac/trunk/trac/versioncontrol/web_ui/changeset.py (282): get_changes
/home/trac/Projects/trac/trunk/trac/versioncontrol/web_ui/changeset.py (462): _render_html
/home/trac/Projects/trac/trunk/trac/versioncontrol/web_ui/changeset.py (253): process_request
/home/trac/Projects/trac/trunk/trac/web/main.py (253): dispatch
/home/trac/Projects/trac/trunk/trac/web/main.py (238): dispatch_request
/home/trac/Run/trac/external.py (378): tracApplication
/home/trac/Run/trac/external.py (115): __call__
/home/trac/Projects/Twisted/trunk/twisted/web2/wsgi.py (199): run
/home/trac/Projects/Twisted/trunk/twisted/python/context.py (38): callWithContext
/home/trac/Projects/Twisted/trunk/twisted/python/context.py (59): callWithContext
/home/trac/Projects/Twisted/trunk/twisted/python/threadpool.py (149): _worker
/usr/lib/python2.4/threading.py (422): run
/usr/lib/python2.4/threading.py (422): __bootstrap

It looks like all of the line numbers are exactly one greater than the actual source lines executed, though. I guess there's a bug in pystack or something.

comment:10 by Christian Boos, 13 years ago

Milestone: 0.10.1

I'm very interested to know if disabling r3830 was enough to avoid the crashes, as #3446 is really depending on that.

comment:11 by Christian Boos, 13 years ago

Milestone: 0.10.32.0
Owner: Christian Boos removed
Priority: highnormal

I'm going to assume the thread pooling triggered some corner case in SQLite, when the connection was being reused by another thread.

I put this issue on stand-by, as I think we need to gather more information. If that bug happens again for someone:

  • be very precise about the SQLite, PySqlite and Trac versions used
  • provide a C stacktrace

comment:12 by exarkun@…, 13 years ago

Coincidentally, another segfault today. Here's the C stacktrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1242883152 (LWP 19246)]
0xb62b214b in svn_error_clear (err=0x6f) at subversion/libsvn_subr/error.c:273
273           apr_pool_destroy(err->pool);
(gdb) bt
#0  0xb62b214b in svn_error_clear (err=0x6f) at subversion/libsvn_subr/error.c:273
#1  0xb60ba9a8 in svn_fs_bdb__wrap_db (fs=0x8648d20, operation=0xb60d304f "opening 'nodes' table", db_err=0) at subversion/libsvn_fs_base/bdb/bdb-err.c:93
#2  0xb60c3026 in open_databases (fs=0x8648d20, create=0, path=0x8648820 "/home/trac/svn/Twisted/db", pool=0x8648520) at subversion/libsvn_fs_base/fs.c:559
#3  0xb60c3488 in base_open (fs=0x8648d20, path=0x8927638 "", pool=0x8648520) at subversion/libsvn_fs_base/fs.c:685
#4  0xb752fa21 in svn_fs_open (fs_p=0x86487e0, path=0x8648820 "/home/trac/svn/Twisted/db", fs_config=0x0, pool=0x8648520) at subversion/libsvn_fs/fs-loader.c:367
#5  0xb601435d in get_repos (repos_p=0xb5eae57c, path=Variable "path" is not available.
) at subversion/libsvn_repos/repos.c:1803
#6  0xb5ebc394 in _wrap_svn_repos_open (self=0x0, args=0xb401886c) at ./subversion/bindings/swig/python/svn_repos.c:2047
#7  0x0805950c in PyObject_Call (func=0xb5ee0cec, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#8  0x080afdd7 in PyEval_CallObjectWithKeywords (func=0x6f, arg=0xb401886c, kw=0x0) at ../Python/ceval.c:3425
#9  0x080a87ed in builtin_apply (self=0x0, args=0x6f) at ../Python/bltinmodule.c:100
#10 0x080b6911 in PyEval_EvalFrame (f=0x88c70b4) at ../Python/ceval.c:3558
#11 0x080b716d in PyEval_EvalCodeEx (co=0xb5f7bd60, globals=0xb5f93824, locals=0x0, args=0x951d4dc, argcount=2, kws=0x951d4e4, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#12 0x080b5619 in PyEval_EvalFrame (f=0x951d374) at ../Python/ceval.c:3651
#13 0x080b716d in PyEval_EvalCodeEx (co=0xb6371c20, globals=0xb635fcec, locals=0x0, args=0x87abdd0, argcount=4, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#14 0x080fb5fd in function_call (func=0xb5eed8ec, arg=0x87abdc4, kw=0x0) at ../Objects/funcobject.c:548
#15 0x0805950c in PyObject_Call (func=0xb5eed8ec, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#16 0x0805eac5 in instancemethod_call (func=0xb5eed8ec, arg=0x87abdc4, kw=0x6f) at ../Objects/classobject.c:2447
#17 0x0805950c in PyObject_Call (func=0xb4e6ff54, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#18 0x0808a965 in slot_tp_init (self=0x6f, args=0x6f, kwds=0x6f) at ../Objects/typeobject.c:4762
#19 0x0808ca88 in type_call (type=0x84ecbbc, args=0xb42a9374, kwds=0x0) at ../Objects/typeobject.c:435
#20 0x0805950c in PyObject_Call (func=0x84ecbbc, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#21 0x080b4af7 in PyEval_EvalFrame (f=0x8ffdc64) at ../Python/ceval.c:3766
#22 0x080b570c in PyEval_EvalFrame (f=0x8cd8124) at ../Python/ceval.c:3640
#23 0x080b570c in PyEval_EvalFrame (f=0x85b9464) at ../Python/ceval.c:3640
#24 0x080b716d in PyEval_EvalCodeEx (co=0xb77bece0, globals=0xb77ce824, locals=0x0, args=0xb35dd640, argcount=2, kws=0xb35dd648, kwcount=0, defs=0xb77e3238, defcount=1,
    closure=0x0) at ../Python/ceval.c:2736
#25 0x080b5619 in PyEval_EvalFrame (f=0xb35dd4bc) at ../Python/ceval.c:3651
#26 0x080b570c in PyEval_EvalFrame (f=0x9633244) at ../Python/ceval.c:3640
#27 0x080b570c in PyEval_EvalFrame (f=0x8bee4d4) at ../Python/ceval.c:3640
#28 0x080b570c in PyEval_EvalFrame (f=0x8bc16e4) at ../Python/ceval.c:3640
#29 0x080b570c in PyEval_EvalFrame (f=0x88b01b4) at ../Python/ceval.c:3640
#30 0x080b716d in PyEval_EvalCodeEx (co=0xb7984860, globals=0xb78e302c, locals=0x0, args=0xaac9ae48, argcount=3, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#31 0x080fb5fd in function_call (func=0xb762b5dc, arg=0xaac9ae3c, kw=0x0) at ../Objects/funcobject.c:548
#32 0x0805950c in PyObject_Call (func=0xb762b5dc, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#33 0x0805eac5 in instancemethod_call (func=0xb762b5dc, arg=0xaac9ae3c, kw=0x6f) at ../Objects/classobject.c:2447
#34 0x0805950c in PyObject_Call (func=0xb486cdc4, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#35 0x0808ac77 in slot_tp_call (self=0x6f, args=0x6f, kwds=0x6f) at ../Objects/typeobject.c:4536
#36 0x0805950c in PyObject_Call (func=0xb766446c, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#37 0x080b4af7 in PyEval_EvalFrame (f=0x89340c4) at ../Python/ceval.c:3766
#38 0x080b716d in PyEval_EvalCodeEx (co=0xb772c6a0, globals=0xb776846c, locals=0x0, args=0xacde8518, argcount=1, kws=0x8a1eab0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#39 0x080fb5fd in function_call (func=0xb762b2cc, arg=0xacde850c, kw=0xb070e8ac) at ../Objects/funcobject.c:548
#40 0x0805950c in PyObject_Call (func=0xb762b2cc, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#41 0x080b4c37 in PyEval_EvalFrame (f=0x933c534) at ../Python/ceval.c:3835
#42 0x080b716d in PyEval_EvalCodeEx (co=0xb7a546a0, globals=0xb7a52b54, locals=0x0, args=0x87a15d8, argcount=3, kws=0x8924788, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#43 0x080fb5fd in function_call (func=0xb7a6ab8c, arg=0x87a15cc, kw=0xb070e9bc) at ../Objects/funcobject.c:548
#44 0x0805950c in PyObject_Call (func=0xb7a6ab8c, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#45 0x080b4c37 in PyEval_EvalFrame (f=0xb368c6a4) at ../Python/ceval.c:3835
#46 0x080b716d in PyEval_EvalCodeEx (co=0xb7a54960, globals=0xb7a52b54, locals=0x0, args=0xaf4df9c0, argcount=3, kws=0x8557f30, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#47 0x080fb5fd in function_call (func=0xb7a6ac6c, arg=0xaf4df9b4, kw=0xb127d57c) at ../Objects/funcobject.c:548
#48 0x0805950c in PyObject_Call (func=0xb7a6ac6c, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#49 0x080b4c37 in PyEval_EvalFrame (f=0x84f224c) at ../Python/ceval.c:3835
#50 0x080b716d in PyEval_EvalCodeEx (co=0xb75a0920, globals=0xb74f0a44, locals=0x0, args=0xb7520fb8, argcount=2, kws=0x85db330, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#51 0x080fb5fd in function_call (func=0xb74ed6f4, arg=0xb7520fac, kw=0xb7a6879c) at ../Objects/funcobject.c:548
#52 0x0805950c in PyObject_Call (func=0xb74ed6f4, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#53 0x080b4c37 in PyEval_EvalFrame (f=0x859cc2c) at ../Python/ceval.c:3835
---Type <return> to continue, or q <return> to quit---
#54 0x080b570c in PyEval_EvalFrame (f=0x8450aec) at ../Python/ceval.c:3640
#55 0x080b716d in PyEval_EvalCodeEx (co=0xb7a60b20, globals=0xb7a52cec, locals=0x0, args=0xb4e167f8, argcount=1, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2736
#56 0x080fb5fd in function_call (func=0xb7a64e2c, arg=0xb4e167ec, kw=0x0) at ../Objects/funcobject.c:548
#57 0x0805950c in PyObject_Call (func=0xb7a64e2c, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#58 0x0805eac5 in instancemethod_call (func=0xb7a64e2c, arg=0xb4e167ec, kw=0x6f) at ../Objects/classobject.c:2447
#59 0x0805950c in PyObject_Call (func=0xb4e7548c, arg=0x6f, kw=0x6f) at ../Objects/abstract.c:1756
#60 0x080afdd7 in PyEval_CallObjectWithKeywords (func=0x6f, arg=0xb7d6702c, kw=0x0) at ../Python/ceval.c:3425
#61 0x080e003d in t_bootstrap (boot_raw=0x852a480) at ../Modules/threadmodule.c:434
#62 0xb7f04361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#63 0xb7e70bde in clone () from /lib/tls/i686/cmov/libc.so.6

Here's the Python stacktrace:

(gdb) pystack
/home/trac/.local/lib/svn-python/libsvn/repos.py (47): svn_repos_open
/home/trac/Projects/trac/trunk/trac/versioncontrol/svn_fs.py (295): __init__
/home/trac/Projects/trac/trunk/trac/versioncontrol/svn_fs.py (265): get_repository
/home/trac/Projects/trac/trunk/trac/versioncontrol/api.py (265): get_repository
/home/trac/Projects/trac/trunk/trac/env.py (87): get_repository
/home/trac/Projects/trac/trunk/trac/versioncontrol/web_ui/browser.py (95): process_request
/home/trac/Projects/trac/trunk/trac/web/main.py (95): dispatch
/home/trac/Projects/trac/trunk/trac/web/main.py (238): dispatch_request
/home/trac/Run/trac/external.py (378): tracApplication
/home/trac/Run/trac/external.py (115): __call__
/home/trac/Projects/Twisted/trunk/twisted/web2/wsgi.py (199): run
/home/trac/Projects/Twisted/trunk/twisted/python/context.py (38): callWithContext
/home/trac/Projects/Twisted/trunk/twisted/python/context.py (59): callWithContext
/home/trac/Projects/Twisted/trunk/twisted/python/threadpool.py (149): _worker
/usr/lib/python2.4/threading.py (422): run
/usr/lib/python2.4/threading.py (422): __bootstrap

Same versions of everything as I mentioned above.

in reply to:  12 comment:13 by Christian Boos, 13 years ago

Replying to exarkun@divmod.com:

Coincidentally, another segfault today. Here's the C stacktrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1242883152 (LWP 19246)]
0xb62b214b in svn_error_clear (err=0x6f) at subversion/libsvn_subr/error.c:273
273           apr_pool_destroy(err->pool);
(gdb) bt
#0  0xb62b214b in svn_error_clear (err=0x6f) at subversion/libsvn_subr/error.c:273
#1  0xb60ba9a8 in svn_fs_bdb__wrap_db (fs=0x8648d20, operation=0xb60d304f "opening 'nodes' table", db_err=0) at subversion/libsvn_fs_base/bdb/bdb-err.c:93
...

Sorry, but you should have followed the advice given in comment:7. You're still using the BDB backend, which has numerous known issues with Trac to the point we could pretty well say that it's not supported… it's not recommended for sure.

comment:14 by Christian Boos, 12 years ago

Resolution: wontfix
Status: newclosed

Apparently the pysqlite related issues were gone after upgrading to a more recent pysqlite version (and possibly also because pysqlite connection pooling has been disabled in 0.10.4 - in case that was the version used).

The remaining backtrace are happening in the SVN python bindings in combination with BDB, which is a known problematic configuration when used with Trac.

comment:15 by Christian Boos, 12 years ago

Milestone: 2.0

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The ticket will remain with no owner.
The resolution will be deleted. Next status will be 'reopened'.
to as closed The owner will be changed from (none) to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.