dbmail_3_2 branch looks working for me.
At Sun, 21 Sep 2014 17:01:10 +0200, Paul J Stevens <p...@nfg.nl> wrote: > > You are right. The purpose of that lock is to protect race conditions on > client->client_state. > > I'll push fix for this. Please let me know if you agree it fixes this. > > > > On 03-09-14 11:15, Sergej Pupykin wrote: > > > > At Tue, 02 Sep 2014 21:07:50 +0400, > > Sergej Pupykin <m...@sergej.pp.ru> wrote: > >> ci_read_cb() calls client->cb_error() under PLOCK(client->lock). > >> > >> cb_error == client_error_cb, which also calls client->PLOCK(client->lock). > >> > >> Can it hangs here in case of error? > > > > I've made completely incorrect fix, which works and proofs that this > > is the bug: > > > > --- dbmail-3.2.0/src/clientbase.c 2014-08-23 17:01:38.000000000 +0400 > > +++ dbmail-3.2.0.my/src/clientbase.c 2014-09-02 21:22:01.075125889 > > +0400 > > @@ -413,11 +413,11 @@ > > break; > > > > } else if (t == 0) { > > - PLOCK(client->lock); > > if (client->sock->ssl) { > > if (client->cb_error(client->rx, t, (void > > *)client)) > > client->client_state |= CLIENT_ERR; > > } > > + PLOCK(client->lock); > > if (client->sock->ssl || client->rx) // EOF on stdin is > > not an error > > client->client_state |= CLIENT_EOF; > > PUNLOCK(client->lock); > > _______________________________________________ > > Dbmail-dev mailing list > > Dbmail-dev@dbmail.org > > http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev > > > > -- > ________________________________________________________________ > Paul J Stevens pjstevns @ gmail, twitter, github, linkedin > www.nfg.nl/i...@nfg.nl/+31.85.877.99.97 > _______________________________________________ > Dbmail-dev mailing list > Dbmail-dev@dbmail.org > http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev _______________________________________________ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev