Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] is hot re-deployment without errors possible?


I believe the rsync is finished.  I use a shell script and and the two commands are sequential.  Here is the script, and some log messages.

    rsync -v myapp.war myserver:/opt/webapps
    rsync -v deployment/myapp.xml myserver:/opt/jetty/webapps/

If I run that, the logs show a stop and start.

    2014-03-14 12:37:01.706:INFO:oejsh.ContextHandler:Scanner-0: Stopped o.e.j.w.WebAppContext@358ee631{/myapp,file:/tmp/jetty-,UNAVAILABLE}{/myapp.war}
    2014-03-14 12:37:03.644:INFO:oejsh.ContextHandler:Scanner-0: Started o.e.j.w.WebAppContext@760aa0cd{/myapp,file:/tmp/jetty-,AVAILABLE}{/myapp.war}

I ran the script again, but this time kept reloading a page in the browser, to trigger an error.  Between the stop and the start messages, I see a bunch of errors like this:

    2014-03-14 12:37:33.079:WARN:oejs.HttpChannel:qtp121295574-906: /myapp/static/common/angular/angular-sanitize.min.js
       at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(
       at org.eclipse.jetty.server.handler.HandlerCollection.handle(
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(
       at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(
       at org.eclipse.jetty.server.Server.handle(
       at org.eclipse.jetty.server.HttpChannel.handle(
       at org.eclipse.jetty.server.HttpConnection.onFillable(
       at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(
       at org.eclipse.jetty.util.thread.QueuedThreadPool$


On Mar 13, 2014, at 10:27 PM, Jan Bartel <janb@xxxxxxxxxxx> wrote:

> Robert,
> Are you sure that the rsync has finished by the time you touch the xml file?
> Upgrading is generally a good idea :), but I can't think of anything
> specifically that would affect the hot redeployment (other than the
> war file not being fully copied).
> Might be able to comment more if you could post an example of the log messages.
> cheers
> Jan
> On 14 March 2014 02:33, Robert Nikander <rob.nikander@xxxxxxxxx> wrote:
>> Hi,
>> (I posted on stackoverflow first [1] but no answers, so I'll try here.)
>> I have the usual web app deployer as described in the docs [2] and defined in etc/jetty-deploy.xml. I use an xml file to define my web app context, so when I push new code to my production server, I upload a new myapp.war file using `rsync` and then touch that myapp.xml file. This works pretty well, but there are few seconds where the app throws a NullPointerException or other weirdness, and some users appear to be getting corrupt statically served files (.js files from the war), so that they have to flush their browser's cache for the app to work again.
>> Is this supposed to work perfectly, or do you expect a brief dead period like this?  Is there a recommended way to deploy new code without the 2-second snafu?
>> Jetty is behind nginx with simple proxy configuration, if that matters.  I'm running 9.0.5, but could upgrade.
>> thanks,
>> Rob
>> [1]
>> [2]
>> _______________________________________________
>> jetty-users mailing list
>> jetty-users@xxxxxxxxxxx
> -- 
> Jan Bartel <janb@xxxxxxxxxxx>
> 'Expert Jetty/CometD developer,production,operations advice'
> _______________________________________________
> jetty-users mailing list
> jetty-users@xxxxxxxxxxx

Back to the top