Ethereal-dev: Re: [Ethereal-dev] Dumpcap: Coredump when disconnecting Ethernet during capture
On Mon, Dec 05, 2005 at 06:26:07PM +0100, Ulf Lamping wrote:
> > I just managed to dump core with dumpcap.
> > While I was capturing I removed the Ethernet plug. After 10-20 seconds,
> > Ethereal crashed and dumped core:
>
> Hmmm, Ethereal or dumpcap crashed?!? dumpcap isn't used in Ethereal today, so what do you mean exactly here?
Well, since about two days (or whenever I submitted the Linux compile
fix for dumpcap) I'm using a dumpcap enabled Ethereal build.
It was the version that was current at the time of the posting.
To me it looks that Ethereal crashed. I cannot be sure that dumpcap
doesn't crash too, but the following stuff happens:
I start ethereal.
Start capture on eth0
Wait for the first few frames to appear.
Unplug the Ethernet jack.
Wait for a while (less than a minute).
Ethereal itself crashes.
09:27:24 Err file capture.c: line 368
(capture_input_error_message): assertion failed: (capture_opts->state ==
CAPTURE_PREPARING)
Aborted (core dumped)
> > The core did not provide any usable info.
> I've added this assert not long ago. Could you please try if it also happens with current Ethereal? I've maybe introduced a new bug which should be obviously fixed.
I've just retried with revision 16696. Still happens, but this time I
got a useable core:
(gdb) bt
#0 0xffffe410 in ?? ()
#1 0xbfffd5c8 in ?? ()
#2 0x00000006 in ?? ()
#3 0x00005d86 in ?? ()
#4 0x416112c1 in raise () from /lib/tls/libc.so.6
#5 0x41612b75 in abort () from /lib/tls/libc.so.6
#6 0x413f9be5 in g_logv () from /opt/gnome/lib/libglib-2.0.so.0
#7 0x413f9c22 in g_log () from /opt/gnome/lib/libglib-2.0.so.0
#8 0x413f9ca1 in g_assert_warning () from
/opt/gnome/lib/libglib-2.0.so.0
#9 0x0806680b in capture_input_error_message ()
#10 0x080694bd in sync_pipe_input_cb ()
#11 0x0807d6f1 in pipe_input_cb ()
#12 0x41274cfb in gdk_input_add () from
/opt/gnome/lib/libgdk-x11-2.0.so.0
#13 0x41417b6f in g_io_channel_unix_get_fd () from
/opt/gnome/lib/libglib-2.0.so.0
#14 0x413f0037 in g_main_context_dispatch () from
/opt/gnome/lib/libglib-2.0.so.0
#15 0x413f2402 in g_main_context_acquire () from
/opt/gnome/lib/libglib-2.0.so.0
#16 0x413f3457 in g_main_loop_run () from
/opt/gnome/lib/libglib-2.0.so.0
#17 0x410abbe3 in gtk_main () from /opt/gnome/lib/libgtk-x11-2.0.so.0
#18 0x08081e7b in main ()
> BTW: Which OS?
Suse Linux 9.3 i386
> However, dumpcap in it's current state isn't ready for prime time.
No problem - I'd just like to test it as much as possible. If it
doesn't work, I can always recompile.
> I'm currently looking how to combine code from ethereal and tethereal, as there's a lot of duplicated (slightly changed) capture related code. I don't want to duplicate it another time in dumpcap.
Full ACK.
Ciao
Joerg
--
Joerg Mayer <jmayer@xxxxxxxxx>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.