Edgewall Software
Modify

Opened 17 years ago

Closed 17 years ago

#5559 closed defect (invalid)

Trac-Admin: Segmentation fault

Reported by: Bruz Owned by: Christopher Lenz
Priority: normal Milestone:
Component: admin/console Version: 0.10.4
Severity: normal Keywords: trac-admin needinfo
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

After Upgrade from 0.9.5 to 0.10.4 i could not use trac-admin…. Allways 'Segmentation fault'

Attachments (0)

Change History (6)

comment:1 by Tim Hatch, 17 years ago

Keywords: needinfo added
Priority: highestnormal
Severity: blockernormal

Bruz, I think we need more information about this. What operating system are you on? What version of Python? Are you able to create new environments, is the error only on running trac-admin with existing ones? How did you upgrade Trac?

comment:2 by aar@…, 17 years ago

This happens to me too. trac-admin segfaults on initenv. However, it creates the project folder so I can run other commands: 'upgrade' and 'resync' do segfault too. Trac 0.10.4 Python 2.4.4 Subversion 1.4.2 python-subversion 1.4.2

Linux, Debian Sarge. trac and other packages were installed using apt-get.

Latest lines from strace: access("/opt/code.trac/db", R_OK|W_OK) = 0 futex(0x82290e8, FUTEX_WAKE, 1) = 0 open("/opt/code.trac/db/trac.db", O_RDWR|O_CREAT|O_LARGEFILE, 0644) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=0, …}) = 0 dup(3) = 4 mmap2(NULL, 2097152, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40ec2000 mprotect(0x40ec2000, 4096, PROT_NONE) = 0 clone(child_stack=0x410c14c4, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0x410c1bf8ptrace: umoven: No such process , tls=0xbfffdc5c, child_tidptr=0x410c1bf8) = 17761 trace: ptrace(PTRACE_SYSCALL, …): No such process

comment:3 by Christian Boos, 17 years ago

Looks like it fails during the creation of the SQLite database. Maybe there's a mismatch between the version of the SQLite library that get used at runtime and the version that was used when building the PySqlite bindings.

Some tips:

  • you can run the initenv from within gdb and when it crashes do a info shared, look for libsqlite3.so
  • if you're unsure about the version of SQLite which was used when building the bindings, the simplest way is to rebuild them yourself, see PySqlite#BuildingSQLiteyourself (and take this opportunity to upgrade to 2.3.5).

comment:4 by aar@…, 17 years ago

gdb shows libsqlite3.so.0

I did the tests from http://trac.edgewall.org/wiki/PySqlite:

>>> import trac.db.sqlite_backend as test
>>> test._ver
(3, 3, 8)
>>> test.have_pysqlite
2
>>> test.sqlite.version
'2.3.2'
>>> from pysqlite2 import dbapi2 as sqlite
>>>

Also, python-pysqlite2 Debian package requires libsqlite3-0 ≥ 3.3.8, so there shouldn't be a mismatch between installed SQLite version and the version used when building PySqlite. What else can I do to debug the issue?

comment:5 by aar@…, 17 years ago

After some digging I understood that sqlite itself was segfaulting because of threading issue (I was running everything inside a UserModeLinux instance). After moving to a normal server everything works fine for me.

in reply to:  5 comment:6 by Christopher Lenz, 17 years ago

Resolution: invalid
Status: newclosed

Replying to aar@cpan.org:

After moving to a normal server everything works fine for me.

So I assume this can be closed.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christopher Lenz.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Christopher Lenz 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.