Opened 10 years ago

Closed 10 years ago

Last modified 8 years ago

#8830 closed patch (fixed)

Pidgin 2.5.5 crash with jabber

Reported by: Nico Owned by: deryni
Milestone: 2.5.6 Component: XMPP
Version: 2.5.5 Keywords: jabber
Cc: ari, BigVig209, praveenmarkandu

Description

Hi, I don't know what has changed in my setup by pidgin started crashing when logging in to a jabber server. pidgin -n loads fine, and only the jabber account produces pidgin to crash. Here is the backtrace attached.

Thanks

Attachments (7)

pidgin-bugreport.txt (5.2 KB) - added by Nico 10 years ago.
libxml2-2.7.3-dont-overwrite-user-handler.diff (432 bytes) - added by TEMHOTA 10 years ago.
pidgin-2.5.5_for_libxml2-2.7.3.diff (1.7 KB) - added by TEMHOTA 10 years ago.
xmpp-parser-warnings.patch (3.1 KB) - added by darkrain42 10 years ago.
xmlnode-serror-handler.patch (1.8 KB) - added by darkrain42 10 years ago.
bonjour-xmlnode.patch (1.4 KB) - added by darkrain42 10 years ago.
pidgin-bugreport3.txt (11.0 KB) - added by BigVig209 10 years ago.
bug-buddy output

Download all attachments as: .zip

Change History (58)

Changed 10 years ago by Nico

comment:1 Changed 10 years ago by darkrain42

  • Component changed from unclassified to XMPP
  • Status changed from new to pending

Please follow the instructions to get a backtrace and attach it to this ticket.
That backtrace isn't very useful. It only contains bugbuddy stuff (but indicates that pidgin did SEGV).

comment:2 Changed 10 years ago by deryni

I'm going to bet this is a duplicate of #8835, which is itself likely a duplicate of #8136.

comment:3 Changed 10 years ago by Nico

  • Status changed from pending to new

Hi,

Here is the backtrace. I hope this is more useful, I see there is still a "??" but I don't know what additional debugging symbols I should load. I'd be happy to give additional details if you want.

Thanks,

Nico

GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) handle SIGPIPE nostop
Signal        Stop	Print	Pass to program	Description
SIGPIPE       No	Yes	Yes		Broken pipe
(gdb) run
Starting program: /usr/bin/pidgin 
[Thread debugging using libthread_db enabled]
[New Thread 0xb7037970 (LWP 8245)]
warning: Lowest section in /usr/lib/libicudata.so.40 is .hash at 000000b4

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7037970 (LWP 8245)]
0xb495e1e0 in ?? ()
(gdb) bt full
#0  0xb495e1e0 in ?? ()
No symbol table info available.
#1  0xb7495ef6 in __xmlRaiseError (schannel=0xb495e1e0, channel=0, data=0xa175de4, ctx=0xa72d380, nod=0x0, domain=1, code=5, level=XML_ERR_FATAL, 
    file=0x0, line=1, str1=0x0, str2=0x0, str3=0x0, int1=0, col=225, msg=0xb7588068 "Extra content at the end of the document\n") at error.c:612
	ctxt = (xmlParserCtxtPtr) 0xa72d380
	node = (xmlNodePtr) 0x0
	str = 0xa8ce100 "Extra content at the end of the document\n"
	input = <value optimized out>
	to = (xmlErrorPtr) 0xa72d500
	baseptr = (xmlNodePtr) 0x0
#2  0xb749a51b in xmlFatalErr (ctxt=0xa72d380, error=169303524, info=0xb75ab678 "\002") at parser.c:464
	errmsg = 0xb495e1e0 ""
#3  0xb74af8da in xmlParseChunk__internal_alias (ctxt=0xa72d380, chunk=0x0, size=0, terminate=1) at parser.c:11473
	end_in_lf = 0
#4  0xb4f8c571 in jabber_parser_free (js=0xa1b0e00) at ../../../../libpurple/protocols/jabber/parser.c:210
No locals.
#5  0xb4f8c5ad in jabber_parser_setup (js=0xa1b0e00) at ../../../../libpurple/protocols/jabber/parser.c:205
No locals.
#6  0xb4f85e6e in jabber_stream_init (js=0xa1b0e00) at ../../../../libpurple/protocols/jabber/jabber.c:81
No locals.
#7  0xb4f8724b in jabber_login_callback_ssl (data=0xa321900, gsc=0xa7279d8, cond=PURPLE_INPUT_READ)
    at ../../../../libpurple/protocols/jabber/jabber.c:579
	js = (JabberStream *) 0xa1b0e00
#8  0xb5379475 in ssl_nss_verified_cb (st=PURPLE_CERTIFICATE_VALID, userdata=0xa7279d8) at ../../../../libpurple/plugins/ssl/ssl-nss.c:251
No locals.
#9  0xb77441b9 in purple_certificate_verify_complete (vrq=0xa6ec7d8, st=PURPLE_CERTIFICATE_VALID) at ../../libpurple/certificate.c:105
	__PRETTY_FUNCTION__ = "purple_certificate_verify_complete"
#10 0xb7744ab0 in x509_tls_cached_start_verify (vrq=0xa6ec7d8) at ../../libpurple/certificate.c:1273
	tls_peers = <value optimized out>
	__PRETTY_FUNCTION__ = "x509_tls_cached_start_verify"
#11 0xb774532f in purple_certificate_verify (verifier=0xb77e05e0, subject_name=0xa31f4f0 "dbx.vpn", cert_chain=0xa31f730, 
    cb=0xb5379410 <ssl_nss_verified_cb>, cb_data=0xa7279d8) at ../../libpurple/certificate.c:80
	scheme = (PurpleCertificateScheme *) 0xb537b620
	__PRETTY_FUNCTION__ = "purple_certificate_verify"
#12 0xb53796ee in ssl_nss_handshake_cb (data=0xa7279d8, fd=22, cond=PURPLE_INPUT_READ) at ../../../../libpurple/plugins/ssl/ssl-nss.c:357
	peers = (GList *) 0xa31f730
	nss_data = <value optimized out>
#13 0x080a8943 in pidgin_io_invoke (source=0xa72e248, condition=<value optimized out>, data=0xa311538) at ../../pidgin/gtkeventloop.c:78
	purple_cond = PURPLE_INPUT_READ
#14 0xb785634d in g_io_unix_dispatch (source=0xa72e290, callback=0x80a8900 <pidgin_io_invoke>, user_data=0xa311538)
    at /build/buildd-glib2.0_2.20.0-2-i386-rcJiVy/glib2.0-2.20.0/glib/giounix.c:162
	buffer_condition = 169303524
#15 0xb781f718 in IA__g_main_context_dispatch (context=0x9efb4b8) at /build/buildd-glib2.0_2.20.0-2-i386-rcJiVy/glib2.0-2.20.0/glib/gmain.c:1814
No locals.
#16 0xb7822c7b in g_main_context_iterate (context=0x9efb4b8, block=1, dispatch=1, self=0x9ed2478)
    at /build/buildd-glib2.0_2.20.0-2-i386-rcJiVy/glib2.0-2.20.0/glib/gmain.c:2448
	max_priority = 2147483647
---Type <return> to continue, or q <return> to quit---
	timeout = 558
	some_ready = 1
	nfds = 9
	allocated_nfds = <value optimized out>
	fds = (GPollFD *) 0xa89abe8
	__PRETTY_FUNCTION__ = "g_main_context_iterate"
#17 0xb782314a in IA__g_main_loop_run (loop=0xa6ec2d0) at /build/buildd-glib2.0_2.20.0-2-i386-rcJiVy/glib2.0-2.20.0/glib/gmain.c:2656
	self = (GThread *) 0x9ed2478
	__PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#18 0xb7b043e9 in IA__gtk_main () at /build/buildd-gtk+2.0_2.14.7-5-i386-7mYrFV/gtk+2.0-2.14.7/gtk/gtkmain.c:1200
	tmp_list = (GList *) 0x0
	functions = (GList *) 0x0
	init = (GtkInitFunction *) 0x0
	loop = (GMainLoop *) 0xa6ec2d0
#19 0x080c29f6 in main (argc=169350984, argv=0x0) at ../../pidgin/gtkmain.c:881
	opt_help = <value optimized out>
	opt_login = 0
	opt_nologin = 0
	opt_version = 0
	opt_si = 1
	opt_config_dir_arg = 0x0
	opt_login_arg = 0x0
	opt_session_arg = 0x0
	accounts = <value optimized out>
	sig_indx = <value optimized out>
	sigset = {__val = {82951, 0 <repeats 31 times>}}
	prev_sig_disp = (void (*)(int)) 0xb495e1e0
	errmsg = "\000\000\000\0008-���\017\000�\220����\017\000�\002\000\000\000\001\000\000\000\bί��\220��\b\000\000\000\b\000\000\000�M\b�����\233\b���M\b��M\b�\b\000\000\000\000\000\000\000h�\221�\000\000\000\000p\026��\fϯ�\006 ��\220���\000\000\000\0000\2304�\223Я���������\221\217���\025\000�\000\000\000\0000\2304�\000\000\000\000(I\b��\017\000��\017\000�\005\000\000\000\004\000\000\000\210ί��\220��\b\000\000\000\024\000\000\000�M\b�����\233\b���M\b��M\b�\024\000\000\000\000\000\000\000"...
	error = (GError *) 0x0
	opt = <value optimized out>
	gui_check = <value optimized out>
	debug_enabled = <value optimized out>
	migration_failed = <value optimized out>
	active_accounts = <value optimized out>
	long_options = {{name = 0x810a24a "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x80f9556 "debug", has_arg = 0, flag = 0x0, val = 100}, {
    name = 0x80fcbaf "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x80f9821 "login", has_arg = 2, flag = 0x0, val = 108}, {
    name = 0x81065e7 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x81065f0 "nologin", has_arg = 0, flag = 0x0, val = 110}, {
    name = 0x81065f8 "nocrash", has_arg = 0, flag = 0x0, val = 120}, {name = 0x810a240 "session", has_arg = 1, flag = 0x0, val = 115}, {
    name = 0x80fe887 "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x810a253 "display", has_arg = 1, flag = 0x0, val = 68}, {
    name = 0x8106600 "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
(gdb) 

comment:4 Changed 10 years ago by TEMHOTA

Now, libxml2 strictly check xml validity. So adding this patch - cure problem when login to jabber server, but not cure crash at all. There is big mess of threaded/not-threaded internal callback trampolines in libxml. Now, clean version overwrite error reporting callback (see: http://bugzilla.gnome.org/show_bug.cgi?id=564217 ), modified libxml call jabber callback once and still crash with same symptom. So - this is problem with libxml2 not with pidgin.

--- pidgin-2.5.5.orig/libpurple/protocols/jabber/parser.c	2009-03-01 22:37:12.000000000 +0300
+++ pidgin-2.5.5/libpurple/protocols/jabber/parser.c	2009-04-01 21:40:42.000000000 +0400
@@ -207,6 +207,7 @@
 
 void jabber_parser_free(JabberStream *js) {
 	if (js->context) {
+		xmlParseChunk(js->context, "</stream:stream>" ,16 ,1);
 		xmlParseChunk(js->context, NULL,0,1);
 		xmlFreeParserCtxt(js->context);
 		js->context = NULL;

comment:5 Changed 10 years ago by darkrain42

This is a duplicate of #8835, but I think that patch should be applied anyway (it seems like it would get rid of the "extra content at the end of document" errors).

Changed 10 years ago by TEMHOTA

comment:6 follow-up: Changed 10 years ago by TEMHOTA

After all - apply attached patches to pidgin and libxml - this fix crash in libxml.

comment:7 in reply to: ↑ 6 Changed 10 years ago by darkrain42

Replying to TEMHOTA:

After all - apply attached patches to pidgin and libxml - this fix crash in libxml.

The patches for xmlnode.c are not likely to help here. Jabber uses its own SAX parser, not the one in xmlnode.c (and it apparently already provides an serror handler).

That patch for libxml2 does look like that might fix the real problem, though

comment:8 follow-ups: Changed 10 years ago by deryni

  • Milestone set to Patches Needing Review
  • Owner changed from lschiere to deryni
  • Type changed from defect to patch

Assuming we attempt to parse a manual closing of the stream do we need the second call to xmlParseChunk for NULL? Does that not look like an error given that we have told libxml2 that the previous </stream> chunk was the last chunk?

That aside, I don't think doing that there is likely correct anyway. I think it more likely to want to be done in jabber_stream_init

if (js->reinit) {
    xmlParseChunk(js->context, "</stream:stream">, 0, 0);
}

or (more likely) with a function in parser.c which does that.

A side question is: Why would we want to install a structured error handler in the xmlnode.c parser? (Especially one that copies the XMPP-specific vcard-temp warning supression. =) )

This crash appears to be different than the one I had seen a while back (#8136) which is curious.

comment:9 in reply to: ↑ 8 Changed 10 years ago by TEMHOTA

Replying to darkrain42:

Replying to TEMHOTA:

After all - apply attached patches to pidgin and libxml - this fix crash in libxml.

The patches for xmlnode.c are not likely to help here. Jabber uses its own SAX parser, not the one in xmlnode.c (and it apparently already provides an serror handler).

It REALLY help. With/witout this part - libxml still generate warning about 'URI vcard-temp' and ingect it to it's own crappy calback trampoline.

That patch for libxml2 does look like that might fix the real problem, though

It ONLY allow calling our error handler and nothing more.

Replying to deryni:

Assuming we attempt to parse a manual closing of the stream do we need the second call to xmlParseChunk for NULL? Does that not look like an error given that we have told libxml2 that the previous </stream> chunk was the last chunk?

Hmm. You suggest fix all jabber-server in the world ? Or break it ? libxml want complete finished stream when xmlFreeParserCtxt() is called. So adding close tag - make it happy.

That aside, I don't think doing that there is likely correct anyway. I think it more likely to want to be done in jabber_stream_init

if (js->reinit) {
    xmlParseChunk(js->context, "</stream:stream">, 0, 0);
}

which call jabber_sertam_init() which call jabber_parser_setup() which call jabber_parser_free().

or (more likely) with a function in parser.c which does that.

jabber_parser_free() finishing stream and nothing more. Stream always not closed. first time - it's not closed after success auth, second time - after disconnect.

A side question is: Why would we want to install a structured error handler in the xmlnode.c parser? (Especially one that copies the XMPP-specific vcard-temp warning supression. =) )

My bad, copy&paste handler :) and xmlnode report same error:

(03:05:46) jabber: Recv (1448): <iq xmlns='jabber:client' id='purplea61e42d4' type='result'><vCard xmlns='vcard-temp'><PHOTO><TYPE>image/png</TYPE><BINVAL>......</BINVAL></PHOTO><EMAIL><USERID>user@jabber</USERID></EMAIL></vCard></iq>
(03:05:46) xmlnode: XML parser error for xmlnode 0x8bcbbb4: Domain 3, code 100, level 1: xmlns: URI vcard-temp is not absolute

This crash appears to be different than the one I had seen a while back (#8136) which is curious.

Maybe, but if this is crash in libxml - any of libxml function must be in backtrace.

comment:10 Changed 10 years ago by darkrain42

The libxml2 part was reported upstream: http://bugzilla.gnome.org/show_bug.cgi?id=564217

comment:11 Changed 10 years ago by darkrain42

Ticket #8835 has been marked as a duplicate of this ticket.

comment:12 Changed 10 years ago by darkrain42

Ticket #8897 has been marked as a duplicate of this ticket.

comment:13 Changed 10 years ago by darkrain42

Ticket #8899 has been marked as a duplicate of this ticket.

comment:14 Changed 10 years ago by darkrain42

Ticket #8898 has been marked as a duplicate of this ticket.

comment:15 in reply to: ↑ 8 Changed 10 years ago by QuLogic

Replying to deryni:

This crash appears to be different than the one I had seen a while back (#8136) which is curious.

#8136 is a different crash, but is a symptom of the same problem. Namely, that libxml2's global/non-global error/warning handler is totally broken.

comment:16 Changed 10 years ago by deryni

That could very well be, which would explain why I had assumed these were the same and why when I asked about the situation in the libxml2 irc channel I was told that I shouldn't have been seeing NULL there.

Do we have confirmation that the upstream applied patch fixes this set of problems (without the libpurple patches)?

comment:17 Changed 10 years ago by darkrain42

I filed Debian#522669 against libxml2. One person there responded saying it didn't solve the issue for him. I'm about to respond and see if he has a backtrace from pidgin with the libxml patch.

comment:18 Changed 10 years ago by Nico

I would happily help (I'm running Debian), but my pidgin doesn't crash anymore, certainly because of some other upgrade! But pidgin and libxml2 haven't changed in a while.

comment:19 Changed 10 years ago by darkrain42

It sounds like the libxml patch is sufficient for Pidgin. From Debian#522669:

> Do you have a backtrace from a crash with the libxml2 patch applied?

Actually, I don't, because totem doesn't do what it says it will.
(--gst-disable-segtrap doesn't do anything)

It also happens that the pidgin crash is fixed, but the gstreamer one is
not.

Mike

comment:20 Changed 10 years ago by deryni

Ticket #8907 has been marked as a duplicate of this ticket.

Changed 10 years ago by darkrain42

comment:21 Changed 10 years ago by darkrain42

Attached patch should silence the jabber: XML parser error for JabberStream 0x2b624f0: Domain 1, code 5, level 3: Extra content at the end of the document errors for all of the common cases.

It will generate warnings if we're disconnected from the server due to a keepalive timeout or other network errors (bad SSL reads) where we don't receive a </stream:stream>; I don't feel the PURPLE_CONNECTION_ERROR enum is fine-grained enough to catch every situation and I'm not sure it's worth much more effort than this.

comment:22 Changed 10 years ago by darkrain42

Since something (libgstladspa.so apparently) now sets the global structural error handler [I don't think I've mentioned how braindead that is for a *LIBRARY* to do...], libpurple does need to set an xmlnode serror handler or we'll still crash when logging on due to an xmlnode_to_str on our user info, which contains a vcard.

See Ubuntu 357949#8 and other reports on that ticket.

Changed 10 years ago by darkrain42

comment:23 Changed 10 years ago by darkrain42

Ticket #8918 has been marked as a duplicate of this ticket.

comment:24 follow-up: Changed 10 years ago by QuLogic

I assume the change to bonjour/jabber.c there is meant to go in #8644.

Changed 10 years ago by darkrain42

comment:25 in reply to: ↑ 24 Changed 10 years ago by darkrain42

Replying to QuLogic:

I assume the change to bonjour/jabber.c there is meant to go in #8644.

Heh, I fixed that, but I forgot to save the patch before uploading it. Fixed.

comment:26 Changed 10 years ago by rekkanoryo

Ticket #8937 has been marked as a duplicate of this ticket.

comment:27 Changed 10 years ago by darkrain42

Ticket #8949 has been marked as a duplicate of this ticket.

comment:28 Changed 10 years ago by darkrain42

Ticket #8952 has been marked as a duplicate of this ticket.

comment:29 Changed 10 years ago by darkrain42

Ticket #8956 has been marked as a duplicate of this ticket.

comment:30 Changed 10 years ago by darkrain42

Ticket #8975 has been marked as a duplicate of this ticket.

Changed 10 years ago by BigVig209

bug-buddy output

comment:31 Changed 10 years ago by BigVig209

I have a similar problem with Pidgin 2.5.5-1 on Debian 5.0 unstable using the 2.6.28 Debian AMD64 kernel. However, this happens when I attempt to start the program. I have no plug-ins installed.

cat /proc/version ->Linux version 2.6.28-1-amd64 (Debian 2.6.28-2~snapshot.12850) uname -r ->Linux Alcazar 2.6.28-1-amd64 #1 SMP Thu Feb 19 03:12:18 UTC 2009 x86_64 GNU/Linux

matthew@Alcazar:~$ gdb
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
(gdb) handle SIGPIPE nostop
Signal        Stop	Print	Pass to program	Description
SIGPIPE       No	Yes	Yes		Broken pipe
(gdb) file pidgin
Reading symbols from /usr/bin/pidgin...Reading symbols from /usr/lib/debug/usr/bin/pidgin...done.
done.
(gdb) run pidgin
Starting program: /usr/bin/pidgin pidgin
[Thread debugging using libthread_db enabled]
[New Thread 0x7f4b62ce47d0 (LWP 15840)]
warning: Lowest section in /usr/lib/libicudata.so.40 is .hash at 0000000000000120

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f4b62ce47d0 (LWP 15840)]
0x00007f4b463891f0 in ?? ()
(gdb) bt full
#0  0x00007f4b463891f0 in ?? ()
No symbol table info available.
#1  0x00007f4b5f342844 in __xmlRaiseError () from /usr/lib/libxml2.so.2
No symbol table info available.
#2  0x00007f4b5f346cf5 in ?? () from /usr/lib/libxml2.so.2
No symbol table info available.
#3  0x00007f4b5f35bbe3 in xmlParseChunk () from /usr/lib/libxml2.so.2
No symbol table info available.
#4  0x00007f4b497bb26b in jabber_parser_free (js=0x27e2ac0)
    at ../../../../libpurple/protocols/jabber/parser.c:210
No locals.
#5  0x00007f4b497b56b5 in jabber_stream_init (js=0x27e2ac0)
    at ../../../../libpurple/protocols/jabber/jabber.c:81
No locals.
#6  0x00007f4b497b6a05 in jabber_login_callback_ssl (data=0x27e11d0, 
    gsc=0x1f3ec40, cond=<value optimized out>)
    at ../../../../libpurple/protocols/jabber/jabber.c:579
	js = (JabberStream *) 0x27e2ac0
#7  0x00007f4b5fe27a37 in purple_certificate_verify_complete (vrq=0x2824270, 
    st=PURPLE_CERTIFICATE_VALID) at ../../libpurple/certificate.c:105
	__PRETTY_FUNCTION__ = "purple_certificate_verify_complete"
#8  0x00007f4b5fe28292 in x509_tls_cached_start_verify (vrq=0x2824270)
    at ../../libpurple/certificate.c:1273
---Type <return> to continue, or q <return> to quit--- 
	tls_peers = <value optimized out>
	__PRETTY_FUNCTION__ = "x509_tls_cached_start_verify"
#9  0x00007f4b47d92f57 in ssl_nss_handshake_cb (data=0x1f3ec40, 
    fd=<value optimized out>, cond=<value optimized out>)
    at ../../../../libpurple/plugins/ssl/ssl-nss.c:357
	peers = (GList *) 0x1ff6ea0
	nss_data = <value optimized out>
#10 0x00000000004661be in pidgin_io_invoke (source=<value optimized out>, 
    condition=<value optimized out>, data=<value optimized out>)
    at ../../pidgin/gtkeventloop.c:78
	closure = (PidginIOClosure *) 0x27fcfe0
	purple_cond = PURPLE_INPUT_READ
#11 0x00007f4b60112f7a in IA__g_main_context_dispatch (context=0x1bb15f0)
    at /tmp/buildd/glib2.0-2.20.1/glib/gmain.c:1814
No locals.
#12 0x00007f4b60116640 in g_main_context_iterate (context=0x1bb15f0, block=1, 
    dispatch=1, self=<value optimized out>)
    at /tmp/buildd/glib2.0-2.20.1/glib/gmain.c:2448
	max_priority = 2147483647
	timeout = 585
	some_ready = 1
	nfds = 10
	allocated_nfds = <value optimized out>
---Type <return> to continue, or q <return> to quit---
	fds = (GPollFD *) 0x27dbf90
	__PRETTY_FUNCTION__ = "g_main_context_iterate"
#13 0x00007f4b60116b0d in IA__g_main_loop_run (loop=0x27e0410)
    at /tmp/buildd/glib2.0-2.20.1/glib/gmain.c:2656
	self = (GThread *) 0x1b6f710
	__PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#14 0x00007f4b612c2727 in IA__gtk_main ()
    at /scratch/build-area/gtk+2.0-2.16.1/gtk/gtkmain.c:1205
	tmp_list = (GList *) 0x0
	functions = (GList *) 0x0
	init = (GtkInitFunction *) 0x1b94150
	loop = <value optimized out>
#15 0x000000000047d5fb in main (argc=2, argv=0x7fff6ae22258)
    at ../../pidgin/gtkmain.c:881
	opt_help = <value optimized out>
	opt_login = 0
	opt_nologin = 0
	opt_version = <value optimized out>
	opt_si = 1
	opt_config_dir_arg = 0x0
	opt_login_arg = 0x0
	opt_session_arg = 0x0
	accounts = <value optimized out>
---Type <return> to continue, or q <return> to quit---
	sigset = {__val = {82951, 0 <repeats 15 times>}}
	prev_sig_disp = (void (*)(int)) 0x1f17db0
	errmsg = "\000��bK\177\000\000���bK\177\000\000h��bK\177\000\000\210��bK\177\000\000\000\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000@��_K\177\000\000\000\000\000\000\000\000\000\000\210��bK\177\000\000\000\000\200�����\000\0006\210\202�\226�", '\0' <repeats 40 times>, "\b\000\000\000\000\000\000\000R�td\004\000\000\000�$\001\000\000\000\000\000�$!\000\000\000\000\000�$!\000\000\000\000\000�\037�j�\177\000\000  �j�\177\000\000\000\000\000\000\000\000\000\000�}�_K\177\000\000\001\000\000\000\000\000\000\000���bK\177\000\000m:�bK\177", '\0' <repeats 18 times>...
	error = (GError *) 0x0
	opt = <value optimized out>
	gui_check = <value optimized out>
	debug_enabled = <value optimized out>
	migration_failed = <value optimized out>
	active_accounts = <value optimized out>
	long_options = {{name = 0x4c1122 "config", has_arg = 1, flag = 0x0, 
    val = 99}, {name = 0x4ae556 "debug", has_arg = 0, flag = 0x0, val = 100}, {
    name = 0x4b241b "help", has_arg = 0, flag = 0x0, val = 104}, {
    name = 0x4ae821 "login", has_arg = 2, flag = 0x0, val = 108}, {
    name = 0x4bd068 "multiple", has_arg = 0, flag = 0x0, val = 109}, {
    name = 0x4bd071 "nologin", has_arg = 0, flag = 0x0, val = 110}, {
    name = 0x4bd079 "nocrash", has_arg = 0, flag = 0x0, val = 120}, {
---Type <return> to continue, or q <return> to quit---
    name = 0x4c1118 "session", has_arg = 1, flag = 0x0, val = 115}, {
    name = 0x4b428f "version", has_arg = 0, flag = 0x0, val = 118}, {
    name = 0x4c112b "display", has_arg = 1, flag = 0x0, val = 68}, {
    name = 0x4bd081 "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, 
    has_arg = 0, flag = 0x0, val = 0}}
(gdb) 

comment:32 Changed 10 years ago by rekkanoryo

Ticket #8990 has been marked as a duplicate of this ticket.

comment:33 Changed 10 years ago by rekkanoryo

Ticket #8991 has been marked as a duplicate of this ticket.

comment:34 Changed 10 years ago by darkrain42

Ticket #9002 has been marked as a duplicate of this ticket.

comment:35 Changed 10 years ago by darkrain42

ladspa uses raptor for RDF parsing and raptor registers the global structured error handler.

I've filed a ticket (http://bugs.librdf.org/mantis/view.php?id=299) (probably requires registration to view) for that and a wishlist bug (http://bugzilla.gnome.org/show_bug.cgi?id=579640) against libxml2 to prefer per-context error handler to global serror handler.

comment:36 Changed 10 years ago by darkrain42

Ticket #9039 has been marked as a duplicate of this ticket.

comment:37 Changed 10 years ago by darkrain42@…

(In d34a15898cacf017df9190ca02741880be8dd940):
Feed a fake </stream:stream> to the XMPP parser to silence warnings.

Upgrading to TLS and disconnecting should no longer emit

'Extra content at the end of the document'

References #8830.

comment:38 Changed 10 years ago by darkrain42@…

(In ca9f6d5b44c825689a68f91153d542205a39adf5):
Add xmlnode and bonjour structured error handlers.

Various libraries may set global structured error handlers and libxml2 prefers those to a per-context normal error handler. This causes us to break badly.

References #8830.

comment:39 Changed 10 years ago by darkrain42

  • Milestone changed from Patches Needing Review to 2.6.0
  • Resolution set to fixed
  • Status changed from new to closed

The raptor bug has been fixed in their SVN and I committed the two patches that keep us from breaking when the original libxml2 bug is also patched.

comment:40 Changed 10 years ago by darkrain42@…

(In bcb04d16f3ca4e36afd84bde4ebe44396dc6c2b3):
Changelog the last few commits (and remove trailing whitespace)

References #8830, #8810.

comment:41 Changed 10 years ago by darkrain42@…

(In bd59a2a2ed2d4dd5da976e3467553f3c6c31ddfc):
* Plucked rev d34a1589 (darkrain42@…): Feed a fake </stream:stream> to the XMPP parser to silence warnings.

Upgrading to TLS and disconnecting should no longer emit

'Extra content at the end of the document'

References #8830.

* Plucked rev ca9f6d5b (darkrain42@…): Add xmlnode and bonjour structured error handlers.

Various libraries may set global structured error handlers and libxml2 prefers those to a per-context normal error handler. This causes us to break badly.

References #8830.

* Plucked rev 34f4897e (darkrain42@…): xmlCtxtGetLastError may return NULL, especially with other misbehaving libraries in our address space.

References #8136.

comment:42 Changed 10 years ago by rekkanoryo

Ticket #9085 has been marked as a duplicate of this ticket.

comment:43 Changed 10 years ago by darkrain42

  • Milestone changed from 2.6.0 to 2.5.6

comment:44 Changed 10 years ago by rekkanoryo

Ticket #9105 has been marked as a duplicate of this ticket.

comment:45 Changed 10 years ago by deryni

Ticket #9107 has been marked as a duplicate of this ticket.

comment:46 Changed 10 years ago by rekkanoryo

Ticket #9142 has been marked as a duplicate of this ticket.

comment:47 Changed 10 years ago by rekkanoryo

Ticket #9190 has been marked as a duplicate of this ticket.

comment:48 Changed 10 years ago by deryni

Ticket #9198 has been marked as a duplicate of this ticket.

comment:49 Changed 10 years ago by darkrain42

Ticket #9213 has been marked as a duplicate of this ticket.

comment:50 Changed 10 years ago by darkrain42

Ticket #9888 has been marked as a duplicate of this ticket.

comment:51 Changed 9 years ago by kenorb

Something relate: #12080

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!