[Users] Claws 3.9.2 - two _really_ annoying issues...

Paul Rolland (=?UTF-8?B?44Od44O844Or44O744Ot44Op44Oz?=) rol at witbe.net
Sat Aug 10 21:32:55 CEST 2013


Hello Kardan,

On Sat, 10 Aug 2013 14:30:13 +0200
kardan <kardan at riseup.net> wrote:

> > If the "Receive" operation I start manually last longer than this
> > account retrieve interval, and that this account is configured for
> > automatic retrieval, I end up with _two_ retrieve operations at the
> > same time. I can see by the "progress counters" at the bottom right
> > of the Claws window alternating their counts of messages, for example:
> > 10/46 then 30/46 then 10/46 again, and so on.
> > When that happens, I kill Claws to avoid more mess...
> I use IMAP also with sub-DSL speed (fortunately not as slow as GPRS)
> and increased the check interval lately. 15 min works fine for me as
> claws is less busy now.

Well, my last painful POP3 session lasted 4hrs and 30 minutes. I had
received 20MB of emails I fetched using that GPRS link... So, that's
something that may become visible with these unusual conditions.
 
> > This "Send" action results in all the emails received so far
> > for the secondary account (POP still in progress) to be placed in the
> > folder associated with the main account (the one used for the Send).
> This sounds like an ugly bug. Please consider to file a report in [1]. I
> will test if this is the same for IMAP and append if so.
Hmmm.... I _hate_ web interfaces, much more than this bug... which is why
I reported it by mail...So, I'll first try to see if I can find some hints,
and regarding what you posted below, I think you have helped me a lot ;)

> My impression: The session pointer for the receive task is overwritten
> by the send task. As you see below pop3_session_new does not check if
> there are running sessions, nor is the session stored account specific.
That sounds very much possible !
 
> inc.c:512:      session->session = pop3_session_new(account);
> static IncSession *inc_session_new(PrefsAccount *account)
> {
>         IncSession *session;
>         cm_return_val_if_fail(account != NULL, NULL);
>         if (account->protocol != A_POP3)
>                 return NULL;
>         if (!account->recv_server || !account->userid)
>                 return NULL;
> 
>         session = g_new0(IncSession, 1);
>         session->session = pop3_session_new(account);
>         session->session->data = session;
>         POP3_SESSION(session->session)->drop_message = inc_drop_message;
>         session_set_recv_message_notify(session->session,
>                                         inc_recv_message, session);
>         session_set_recv_data_progressive_notify(session->session,
>                                                  inc_recv_data_progressive,
>                                                  session);
>         session_set_recv_data_notify(session->session,
>                                      inc_recv_data_finished, session);
>         return session;
> }
> 
> pop.c:516:Session *pop3_session_new(PrefsAccount *account)
> Session *pop3_session_new(PrefsAccount *account)
> { 
>         Pop3Session *session;
>         cm_return_val_if_fail(account != NULL, NULL);
>         session = g_new0(Pop3Session, 1);
>         session_init(SESSION(session), account, FALSE);
>         SESSION(session)->type = SESSION_POP3;
>         SESSION(session)->recv_msg = pop3_session_recv_msg;
>         SESSION(session)->recv_data_finished =
>         pop3_session_recv_data_finished;
>         SESSION(session)->send_data_finished = NULL;
>         SESSION(session)->destroy = pop3_session_destroy;
>         session->state = POP3_READY;
>         session->ac_prefs = account;
>         session->pop_before_smtp = FALSE;
>         pop3_get_uidl_table(account, session);
>         session->current_time = time(NULL);
>         session->error_val = PS_SUCCESS;
>         session->error_msg = NULL;
>         return SESSION(session);
> }
> Please anyone tell me if I am wrong.
I'll try to add some debug code to see if sometimes a pointer is
"overwritten"... 
 
> > Hope this will inspire someone... and I'm ready (and willing) to try
> > any patch you may cook ;)
> Thanks for reporting this. I rather not write a patch as I don't want
> to be the one who is responsible to mix up your mails any further. :)
Well, I'm ready to accept testing, so if you have more ideas, feel free to
send them. I've some days off so I may try to cook up something, at least
to try to validate your ideas !

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.claws-mail.org/pipermail/users/attachments/20130810/6a3fccfb/attachment.sig>


More information about the Users mailing list