[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] Another volatile message bug



David Kerry wrote:

Ok, now that the NPE problems have been resolved, we've run
into another problem, probably related, where volatile messages
are not deleted properly.

What happens is xmlBlaster seems to get itself confused and
not delete a volatile message when it should.  After it gets
into this state, it will never delete the message and continue
to re-deliver it to each new subscriber/login that it applies to.
It will do this forever as far as I can tell - ie: it will
never expire the message either.

Attached are test scripts to reproduce the problem.

Protocol is XML-RPC, BTW.

To reproduce, run the scripts in the following order:


1) perl server2.pl (in xterm #1) 2) perl serverlogin.pl (in xterm #2) 3) perl testpub.pl (in xterm #2)

(server2.pl will spit out 'GOT UPDATE' to note
 that it got the published message via callback)

4) kill server2.pl (ctrl-c in xterm #1)
5) perl testpub.pl (in xterm #2)

 (xmlblaster will kill server2's login because it
  can no longer reach the callback server)

6) perl server2.pl (in xterm #1)
7) perl serverlogin.pl (in xterm #1)

Note that server2.pl now says 'GOT UPDATE' again.
It should not receive a callback at this point - the
message was volatile so it should have been deleted
immediately.

Continued restarting of server2/serverlogin will
cause the same message to get continually posted
again and again when it should receive nothing at
all.



David,

thanks for finding this memory leak which happend for volatile messages
in callback queues of lost clients.

It is fixed now,

Marcel