synaptic-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Synaptic-devel] Strange segfault


From: Andrey Tarassov
Subject: Re: [Synaptic-devel] Strange segfault
Date: Fri, 16 Apr 2004 10:55:40 +0100
User-agent: Mozilla Thunderbird 0.5 (X11/20040208)


Panu Matilainen wrote:
On Thu, 2004-04-15 at 20:56, Andrey Tarassov wrote:

Hi!

I have encountered a very strange problem with synaptic? Namely, we have a repository that may be accessed from both http and ftp using the same address and the repository is signed with GPG.

Now, the problem is that if you press the refresh button on startup (after some time this is not even required) and edit repositories, pressing refresh again causes synaptic to crash.

There is only one thing I am editing in repositories: ftp -> http and vice versa. Nothing else. I also encountered this problem before with some other changes, but know I have found a possibility to reproduce the bug easily.

I looked deeper into the problem and tried to trace the problem with gdb. I found that the segfault appeared in pkgAcqIndexRel::Done(), but could not find why it was happening as everything seemed to be ok.

Have you heard about such a problem and does anyone know about how to solve it?

FYI, I am using synaptic-0.48.1 and apt-rpm 0.15.5cnc6.


That sounds a whole lot like a longstanding problem I'm seeing with
apt-shell together with signed repositories:

When running "update" from apt-shell, by the time it gets to pkgAcqIndexRel::Done(), Repository->Vendor->FingerPrint has turned into garbage, causing the segfault on comparison to Release fingerprint.
Actually most of the Vendor stucture gets overwritten by something, it
seems consistent that the corruption begins at the last character of
Vendor->Description (but not 100% sure about that), anyway the entire
Vendor Repository->Vendor struct get garbled useless.

Doesn't happen with synaptic in my environment but it sounds all too
familiar - can you post the entire backtrace of the crash so we can see
whether it's the same problem or something else?

Yes, sure. Here we go:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -150645536 (LWP 22413)]
pkgAcqIndexRel::Done (this=0x908b960, Message=Cannot access memory at address 0x0
) at basic_string.h:257
257           { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
(gdb) bt
#0 pkgAcqIndexRel::Done (this=0x908b960, Message=Cannot access memory at address 0x0
) at basic_string.h:257
#1 0x0073b26a in pkgAcquire::Worker::RunMessages (this=0x9093b80) at acquire-worker.cc:280 #2 0x0073ddbc in pkgAcquire::Worker::InFdReady (this=0x9093b80) at acquire-worker.cc:501 #3 0x00728968 in pkgAcquire::RunFds (this=0xfff5f6f5, RSet=0xfeef6a50, WSet=0xfeef69d0) at acquire.cc:300
#4  0x00728ba0 in pkgAcquire::Run (this=0xfeef6b20) at acquire.cc:349
#5 0x080aed2d in RPackageLister::updateCache (this=0x8e12ef0, status=0xfff5f6f5) at rpackagelister.cc:1435 #6 0x0808277a in RGMainWindow::updateClicked (self=0x8e5e7d0, data=0x8e03030) at rgmainwindow.cc:693 #7 0x00643691 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#8  0x0062f160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9  0x00643195 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#10 0x00642157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0x00642454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x0032d425 in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x0032e3bb in gtk_button_get_relief () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00643691 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#15 0x0062f4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#16 0x0062f160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0x006429be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#18 0x00642157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#19 0x00642454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#20 0x0032d375 in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x0032e23b in gtk_button_get_relief () from /usr/lib/libgtk-x11-2.0.so.0
#22 0x003e7854 in gtk_marshal_VOID__UINT_STRING () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x0062f4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#24 0x0062f160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#25 0x00642bc5 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#26 0x00641f2e in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#27 0x00642454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#28 0x004e53b5 in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0
#29 0x003e5df2 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#30 0x003e4b36 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x002538e5 in gdk_x11_register_standard_event_type () from /usr/lib/libgdk-x11-2.0.so.0
#32 0x007cde4a in g_main_depth () from /usr/lib/libglib-2.0.so.0
#33 0x007cef28 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0x007cf260 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0x007cf8a3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#36 0x003e4403 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#37 0x08068c5d in main (argc=1, argv=0xfeef7df4) at gsynaptic.cc:216


In general I believe that you described the situation quite correctly. Do you know if the apt-rpm developers are aware about the problem?

I will try to look into this problem deeper, but unfortunately I do not have that much time for this :-(

Thanks,

Andrey

--
Andrey Tarasov
Software Engineer

OÜ SOT Finnish Software Engineering
Kreutzwaldi 7-4, 10124 TALLINN, ESTONIA

Phone: +372 641 9975
Fax:   +372 641 9876
address@hidden
http://www.sot.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]