I realize few are actively interested in the 3.1.x releases anymore, but
I'll describe the problem anyway.

When starting the server there if often a one minute pause before the
server handles the first request.  The reason appears to be a race
condition in startup.  In the source code for 3.1.8, and every other minor
release I have checked the interesting code is the class
com.caucho.server.port.Port, Port.java lines 1103 to 1105:

      thread.start();
      enable();

The run() method charges ahead from thread.start() and checks if the
lifecycle is active.  It isn't and the thread waits for up to a minute
before trying again.  Meanwhile we call enable() to set the state to
active, but alas to late.
I notice the corresponding code in resin 4.x has "enable" before "start":
https://github.com/mdaniel/svn-caucho-com-resin/blob/master/modules/resin/src/com/caucho/network/listen/TcpPort.java#L1281-1283

Also, according to the tags associated with the change
https://github.com/mdaniel/svn-caucho-com-resin/commit/edf3f676a5d8f1c2a748f5fd987705137728838c
I'm
inclined to believe the change made it into 3.0.28, 4.0.x and the
short-lived 3.2.x series, but missed 3.1.x completely.

I have patched the class locally and it seems to have made all the
difference.  I can now start and be immediately ready for traffic.

Regards,

Knut Forkalsrud
_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to