Salut aborts when the application using the MUC stream tube is terminated
Submitted by Alban Crequy
Assigned to Sjoerd Simons @sjoerd
Description
I am using telepathy-salut master (57edd8ed) and I am testing with examples/stream_tube_client.py from telepathy-python version 0.15.3.
I am using account files like this: manager: salut protocol: local-xmpp jid: albantest01@example.com first-name: albantest01 last-name: albantest01 published-name: albantest01
How to reproduce:
- Start telepathy-salut
- In the first console: PYTHONPATH=$PWD/build/lib python ./examples/tube-stream-muc.py ~/salut2.account salle01 --initiator
- In the second console: PYTHONPATH=$PWD/build/lib python ./examples/tube-stream-muc.py ~/salut.account salle01
- Press Ctrl-C on the second console:
received: hi ! received: hi ! ^CTraceback (most recent call last): File "/home/alban/git/telepathy-python/examples/stream_tube_client.py", line 218, in read_socket data = s.recv(1024) KeyboardInterrupt
- telepathy-salut is still alive
- Press Ctrl-C on the second console again.
- telepathy-salut aborts
** (telepathy-salut:7738): DEBUG: gibber_xmpp_writer_write_stanza: Writing xml: . ** ** ERROR:(gibber-transport.c:226):gibber_transport_send: assertion failed: (transport->state == GIBBER_TRANSPORT_CONNECTED) Aborted (core dumped)
The trace is:
Core was generated by `./src/telepathy-salut'. Program terminated with signal 6, Aborted. [New process 7738]
#0 0x00007f6f167d5ed5 in raise () from /lib/libc.so.6
(gdb) bt
#0 0x00007f6f167d5ed5 in raise () from /lib/libc.so.6
#1 0x00007f6f167d73f3 in abort () from /lib/libc.so.6
#2 0x00007f6f16e149a4 in g_assertion_message (domain=0x7f6f16e6c95e "",
file=0x45af7c "gibber-transport.c", line=<value optimized out>,
func=0x45b110 "gibber_transport_send", message=<value optimized out>) at gtestutils.c:1218
#3 0x00007f6f16e14e52 in g_assertion_message_expr (domain=0x0, file=0x45af7c "gibber-transport.c",
line=226, func=0x45b110 "gibber_transport_send", expr=<value optimized out>) at gtestutils.c:1229
#4 0x000000000043eb7e in gibber_transport_send (transport=<value optimized out>,
data=<value optimized out>, size=<value optimized out>, error=<value optimized out>)
at gibber-transport.c:226
#5 0x0000000000436011 in gibber_xmpp_connection_send (connection=0x1798f70, stanza=0x17a1720,
error=0x0) at gibber-xmpp-connection.c:322
#6 0x000000000043a231 in bytestream_closed (self=0x1788bd0) at gibber-bytestream-oob.c:840
#7 0x00007f6f170a49ed in g_closure_invoke (closure=0x17bd300, return_value=0x0, n_param_values=1,
param_values=0x7fff20329d90, invocation_hint=0x7fff20329c90) at gclosure.c:490
#8 0x00007f6f170b87c0 in signal_emit_unlocked_R (node=0x17612c0, detail=0, instance=0x17ac440,
emission_return=0x0, instance_and_params=0x7fff20329d90) at gsignal.c:2440
#9 0x00007f6f170b9cc4 in g_signal_emit_valist (instance=0x17ac440, signal_id=<value optimized out>,
detail=0, var_args=0x7fff20329ff0) at gsignal.c:2199
#10 0x00007f6f170ba213 in g_signal_emit (instance=0x1e3a, signal_id=7738, detail=6) at gsignal.c:2243
#11 0x000000000044c64a in _channel_io_in (source=<value optimized out>,
condition=<value optimized out>, data=0x17ac440) at gibber-fd-transport.c:274
#12 0x00007f6f16deefcb in g_main_context_dispatch (context=0x1757ce0) at gmain.c:2012
#13 0x00007f6f16df279d in g_main_context_iterate (context=0x1757ce0, block=1, dispatch=1,
self=<value optimized out>) at gmain.c:2645
#14 0x00007f6f16df2ccd in g_main_loop_run (loop=0x1757dc0) at gmain.c:2853
#15 0x00007f6f16b77296 in tp_run_connection_manager (prog_name=0x44e8c4 "telepathy-salut",
version=0x44e8f0 "0.3.5.1", construct_cm=0x40c6b0 <salut_create_connection_manager>,
argc=<value optimized out>, argv=<value optimized out>) at run.c:261
#16 0x00007f6f167c21a6 in __libc_start_main () from /lib/libc.so.6
#17 0x000000000040c579 in _start ()
It tries to send the result IQ stanza because we finished to use the OOB.