#977673 pan: Frequent freeze-ups when using SSL connections

Package:
pan
Source:
pan
Description:
newsreader based on GTK3, which looks like Forte Agent
Submitter:
Vincent Smeets
Date:
2020-12-20 14:03:04 UTC
Severity:
normal
Tags:
#977673#5
Date:
2020-12-18 15:30:11 UTC
From:
To:
this bug is also reported upstream as https://gitlab.gnome.org/GNOME/pan/-/issues/30

I am using pan to connect to the news servers of
news*.open-news-network.org. Some of them are using NTTPS.  I have started
pan with the options "--debug --debug --debug-ssl". After some time,
pan doesn't respond anymore. The output shows a continues stream of the
following debug output. It looks like it is in some loop.

(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869250
(socket-impl-openssl.cc:743:gio_func) gio_func: sock 0x7f55840051a0, channel 0x7f5584006600, cond IN
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f5594001360 calling set_watch_mode 2; _channel is 0x7f5594001e40
(socket-impl-openssl.cc:766:set_watch_mode) channel 0x7f5594001e40 setting mode **IGNORE**
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode IGNORE: _tag_watch is now 0
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f5594001360 calling set_watch_mode 0; _channel is 0x7f5594001e40
(socket-impl-openssl.cc:770:set_watch_mode) channel 0x7f5594001e40 setting mode read
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869252
(socket-impl-openssl.cc:743:gio_func) gio_func: sock 0x7f5594001360, channel 0x7f5594001e40, cond IN
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f558c018c40 calling set_watch_mode 2; _channel is 0x7f558c016020
(socket-impl-openssl.cc:766:set_watch_mode) channel 0x7f558c016020 setting mode **IGNORE**
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode IGNORE: _tag_watch is now 0
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f558c018c40 calling set_watch_mode 0; _channel is 0x7f558c016020
(socket-impl-openssl.cc:770:set_watch_mode) channel 0x7f558c016020 setting mode read
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869254
(socket-impl-openssl.cc:743:gio_func) gio_func: sock 0x7f558c018c40, channel 0x7f558c016020, cond IN
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f558c001360 calling set_watch_mode 2; _channel is 0x7f558c001820
(socket-impl-openssl.cc:766:set_watch_mode) channel 0x7f558c001820 setting mode **IGNORE**
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode IGNORE: _tag_watch is now 0
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f558c001360 calling set_watch_mode 0; _channel is 0x7f558c001820
(socket-impl-openssl.cc:770:set_watch_mode) channel 0x7f558c001820 setting mode read
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869256
(socket-impl-openssl.cc:743:gio_func) gio_func: sock 0x7f558c001360, channel 0x7f558c001820, cond IN
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f55840051a0 calling set_watch_mode 2; _channel is 0x7f5584006600
(socket-impl-openssl.cc:766:set_watch_mode) channel 0x7f5584006600 setting mode **IGNORE**
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode IGNORE: _tag_watch is now 0
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f55840051a0 calling set_watch_mode 0; _channel is 0x7f5584006600
(socket-impl-openssl.cc:770:set_watch_mode) channel 0x7f5584006600 setting mode read
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869258
(socket-impl-openssl.cc:743:gio_func) gio_func: sock 0x7f55840051a0, channel 0x7f5584006600, cond IN
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f5594001360 calling set_watch_mode 2; _channel is 0x7f5594001e40
(socket-impl-openssl.cc:766:set_watch_mode) channel 0x7f5594001e40 setting mode **IGNORE**
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode IGNORE: _tag_watch is now 0
(socket-impl-openssl.cc:757:set_watch_mode) socket 0x7f5594001360 calling set_watch_mode 0; _channel is 0x7f5594001e40
(socket-impl-openssl.cc:770:set_watch_mode) channel 0x7f5594001e40 setting mode read
(socket-impl-openssl.cc:786:set_watch_mode) set_watch_mode READ: _tag_watch is now 869260

#977673#12
Date:
2020-12-19 16:40:47 UTC
From:
To:
Does pan resume after a while ?

On my side, I use pan with ssl without problem. I thought it was stalled, but
it had popped another windows asking whether the server's certificate should be
trusted.

HTH

#977673#17
Date:
2020-12-20 11:16:30 UTC
From:
To:
Hallo,

No, it doesn't resume. There is also no additional window open for which it
is waiting.

I don't know how to provoke this situation. I have noticed a couple of
times after the following steps:
- I normally read my news.
- then minimized the window.
- After an idle time, my computer goes to suspended mode.
- When I am back and I wake my computer out of suspended mode again.
- I open pan to read news
- I click on "Get new headers of subscribed groups".
- Then I see that pan is freezing and the debug logging constantly shows
the messages from socket-impl-openssl.cc as shown.

I have investigated socket-impl-openssl.cc a little bit, but I don't know
how it should work. It looks like set_watch_mode is triggered every time
for a read, but there is nothing (no data) to read. It sets a new watch and
that gets triggered directly again.

Regards.

Op za 19 dec. 2020 om 17:40 schreef Dominique Dumont <dod@debian.org>:

#977673#22
Date:
2020-12-20 14:00:02 UTC
From:
To:
Hello,

I just got an hit again. I have attached the relevant part of the log
output. The log was generated by the following command to also have the
timestamps:
    pan/gui/pan --debug --debug --debug-ssl |& ts '%.T' | tee pan.log

Until 13:50:15, pan was working normally. The window was minimized and
around 13:50:15, my computer was idle and went into suspended mode.

At 14:24:02, I reactivated my computer. It looks like pan wrote out some
QUIT commands to the servers.

At 14:24:09.44* pan is reading some "Bye!" answers.

From 14:24:09.73* onwards, pan is in a loop and everything is freezing.

Every second, about 71000 lines of debug output is written to the log file.
$ fgrep -c 14:24:10 pan.log.full
71097
$

Regards,
Vincent


Op zo 20 dec. 2020 om 12:16 schreef Vincent Smeets <
vincent.vsmeets@gmail.com>:

#977673#27
Date:
2020-12-20 14:01:39 UTC
From:
To:
And here is the missing attachment. (compressed)

Op zo 20 dec. 2020 om 15:00 schreef Vincent Smeets <
vincent.vsmeets@gmail.com>: