Discussion:
Thunderbird issues with read status
Stefan Froehlich
2017-06-23 12:52:06 UTC
Permalink
Thunderbird client seems to not updating the read status properly. When
an email is marked as read or unread it doesn't sync through to
roundcube webmail or active sync clients nor to another thunderbird
instance on another computer. Pressing F5 in Thunderbird reverts the change.

Marking an email in Roundcube or on an active sync device works fine and
the changes are synced to the Thunderbird clients as well.

This was working before and started only recently but I cannot tell
after which update it started.

Debian 8, Kolab 16

Any idea where to look at?
Mark Berndt
2017-06-23 12:56:27 UTC
Permalink
Post by Stefan Froehlich
Thunderbird client seems to not updating the read status properly. When
an email is marked as read or unread it doesn't sync through to
roundcube webmail or active sync clients nor to another thunderbird
instance on another computer. Pressing F5 in Thunderbird reverts the change.
Marking an email in Roundcube or on an active sync device works fine and
the changes are synced to the Thunderbird clients as well.
This was working before and started only recently but I cannot tell
after which update it started.
Debian 8, Kolab 16
Any idea where to look at?
I'm seeing this too on a centos install. It appeared after the last set of
updates 2 or 3 days ago.
Franz Skale
2017-06-23 15:39:31 UTC
Permalink
Same by me.
All i can find is this (/var/log/guam/console.log).
2017-06-23 17:36:56.249 [error] <0.23244.0> gen_server <0.23244.0>
terminated with reason: no function clause matching
kolab_guam_rule_filter_groupware:apply_to_client_message(<0.23287.0>,
<<"DONE\r\n">>, undefined,
{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]})
line 32
2017-06-23 17:36:56.249 [error] <0.23244.0> CRASH REPORT Process
<0.23244.0> with 0 neighbours exited with reason: no function clause
matching
kolab_guam_rule_filter_groupware:apply_to_client_message(<0.23287.0>,
<<"DONE\r\n">>, undefined,
{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]})
line 32 in gen_server:terminate/6 line 737
2017-06-23 17:36:56.250 [error] <0.90.0> Supervisor
{<0.90.0>,kolab_guam_listener} had child session started with
{kolab_guam_session,start_link,undefined} at <0.23244.0> exit with
reason no function clause matching
kolab_guam_rule_filter_groupware:apply_to_client_message(<0.23287.0>,
<<"DONE\r\n">>, undefined,
{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]})
line 32 in context child_terminated

Error ?
I'm not familiar with Erlang.
Perhaps the developer can bring some light if this is an error or debug
messaging.

Rgds.
Franz
Post by Mark Berndt
Post by Stefan Froehlich
Thunderbird client seems to not updating the read status properly. When
an email is marked as read or unread it doesn't sync through to
roundcube webmail or active sync clients nor to another thunderbird
instance on another computer. Pressing F5 in Thunderbird reverts the change.
Marking an email in Roundcube or on an active sync device works fine and
the changes are synced to the Thunderbird clients as well.
This was working before and started only recently but I cannot tell
after which update it started.
Debian 8, Kolab 16
Any idea where to look at?
I'm seeing this too on a centos install. It appeared after the last set of
updates 2 or 3 days ago.
_______________________________________________
users mailing list
https://lists.kolab.org/mailman/listinfo/users
Aleksander Machniak
2017-06-23 18:05:11 UTC
Permalink
Post by Franz Skale
Same by me.
All i can find is this (/var/log/guam/console.log).
2017-06-23 17:36:56.249 [error] <0.23244.0> gen_server <0.23244.0>
terminated with reason: no function clause matching
kolab_guam_rule_filter_groupware:apply_to_client_message(<0.23287.0>,
<<"DONE\r\n">>, undefined,
{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]})
line 32
I think here's the fix for this one:
https://git.kolab.org/rG20808866e5a213e31cbd92d3c95da4547adadd0b

I'm not sure it fixes read status issue. You properly found it's a guam
issue.
--
Aleksander Machniak
Software Developer
Kolab Systems AG: http://kolabsys.com
PGP: 19359DC1
Franz Skale
2017-06-23 19:14:39 UTC
Permalink
Hi Aleksander,
that's weird because the version (debian 8 kolab16) is 0.9.2.1
A grep in the source package shows:
grep -n apply_to_client_message * -r
src/kolab_guam_rule.erl:28:-callback apply_to_client_message(ImapSession
:: pid(), Command :: binary(), SplitBinary :: { Tag :: binary(), Command
:: binary(), Data :: binary() }, State :: any()) ->
src/kolab_guam_session.erl:302: { Data, NewState } =
Module:apply_to_client_message(ImapSession, ClientData, SplitCommand,
RuleState),
src/rules/kolab_guam_rule_filter_groupware.erl:19:-export([new/1,
applies/4, imap_data/3, apply_to_client_message/4,
apply_to_server_message/3]).
*src/rules/kolab_guam_rule_filter_groupware.erl:32:apply_to_client_message(ImapSession,
Buffer, { Tag, Command, Data }, State) ->*
test/kolab_guam_rules_SUITE.erl:67: { _, ReadyState } =
kolab_guam_rule_filter_groupware:apply_to_client_message(ImapSession,
<<"7 list (subscribed) \"\" \"*\" return (special-use)">>, State),
test/kolab_guam_rules_SUITE.erl:82: { _, ReadyState } =
kolab_guam_rule_filter_groupware:apply_to_client_message(<<"7 list
(subscribed) \"\" \"*\" return (special-use)">>, State),
So the patch should be applied in this particular version.
Hm.
Doing a grep -r three libs show the function:
Binary file lib/kolab_guam-0.9.2/ebin/kolab_guam_rule.beam matches
Binary file
lib/kolab_guam-0.9.2/ebin/kolab_guam_rule_filter_groupware.beam matches
Binary file lib/kolab_guam-0.9.2/ebin/kolab_guam_session.beam matches

strings
lib/kolab_guam-0.9.2/ebin/kolab_guam_rule_filter_groupware.beam|grep -i
apply_to_client_message
apply_to_client_message

But the lib is NOT active:
fuser lib/kolab_guam-0.9.2/ebin/kolab_guam_rule_filter_groupware.beam
Nothing returned.

Does guam load the lib on demand ?
Is there a config.sys options missing ?

Perhaps someone knows.

Rgds.
Franz
Post by Aleksander Machniak
Post by Franz Skale
Same by me.
All i can find is this (/var/log/guam/console.log).
2017-06-23 17:36:56.249 [error] <0.23244.0> gen_server <0.23244.0>
terminated with reason: no function clause matching
kolab_guam_rule_filter_groupware:apply_to_client_message(<0.23287.0>,
<<"DONE\r\n">>, undefined,
{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]})
line 32
https://git.kolab.org/rG20808866e5a213e31cbd92d3c95da4547adadd0b
I'm not sure it fixes read status issue. You properly found it's a guam
issue.
Aleksander Machniak
2017-06-24 06:44:14 UTC
Permalink
Post by Franz Skale
Hi Aleksander,
that's weird because the version (debian 8 kolab16) is 0.9.2.1
*src/rules/kolab_guam_rule_filter_groupware.erl:32:apply_to_client_message(ImapSession,
Buffer, { Tag, Command, Data }, State) ->*
It's clear the patch is not applied.
--
Aleksander Machniak
Software Developer
Kolab Systems AG: http://kolabsys.com
PGP: 19359DC1
Stefan Froehlich
2017-06-24 06:50:16 UTC
Permalink
Post by Aleksander Machniak
Post by Franz Skale
Hi Aleksander,
that's weird because the version (debian 8 kolab16) is 0.9.2.1
*src/rules/kolab_guam_rule_filter_groupware.erl:32:apply_to_client_message(ImapSession,
Buffer, { Tag, Command, Data }, State) ->*
It's clear the patch is not applied.
So how do I apply that patch?

MfG Stefan Froehlich
42 ;-)
Skale, Franz
2017-06-24 07:16:01 UTC
Permalink
Post by Stefan Froehlich
Post by Aleksander Machniak
Post by Franz Skale
Hi Aleksander,
that's weird because the version (debian 8 kolab16) is 0.9.2.1
*src/rules/kolab_guam_rule_filter_groupware.erl:32:apply_to_client_message(ImapSession,
Buffer, { Tag, Command, Data }, State) ->*
It's clear the patch is not applied.
So how do I apply that patch?
MfG Stefan Froehlich
42 ;-)
_______________________________________________
users mailing list
https://lists.kolab.org/mailman/listinfo/users
Hi,
this line was missing. (a func prototype ?, why undefine ?)

Line: 20

apply_to_client_message(_ImapSession, Buffer, undefined, State) ->
{ Buffer, State };

Anyone who want's to test i can provide a link for the pachted version
(named it 0.9.2-2). (Deb package).


But rebuilding and testing it, thunderbird ends up hanging when
accessing the inbox.
rebar3 moans about a possible undefined behaviour of kolab_guam_rule.
Reading the 0.9.3 git source, it seems, that there's a lot of testing
and really doubt that guam is stable by now.
I deactivated guam and reconfigured cyrus to serve from port 143 again.
All is working now.
I looking forward for a stable version of guam though.


Rgds.
Franz
Franz Skale
2017-06-24 07:40:51 UTC
Permalink
Post by Aleksander Machniak
Post by Franz Skale
Hi Aleksander,
that's weird because the version (debian 8 kolab16) is 0.9.2.1
*src/rules/kolab_guam_rule_filter_groupware.erl:32:apply_to_client_message(ImapSession,
Buffer, { Tag, Command, Data }, State) ->*
It's clear the patch is not applied.
Hi Aleksander,

of cource the patch has been applied to version 0.9.2-1.

This is the line: (32).


apply_to_client_message(ImapSession, Buffer, { Tag, Command, Data },
State) ->
{ Active, StateTag } =
case is_triggering_command(Command, Data, State) of
true -> fetch_metadata(ImapSession, State), { true, Tag };
_ -> { false, <<>> }
end,
%lager:info("Client sent: ~s ~s ~p", [Command, Data, Active]),
{ Buffer, State#state{ active = Active, tag = StateTag }}.


And this i added from 0.9.3 (git master).

Line 20:

apply_to_client_message(_ImapSession, Buffer, undefined, State) ->
{ Buffer, State };


Rgds.

Franz

Loading...