Another longer term option is to have a MySQL replication slave server that performs backup snapshots as needed (hourly, daily, weekly).
On Apr 3, 2013, at 1:32 PM, Altera WO Team <webobje...@altera.it> wrote: > Hi all, > > I finally solved the problem… well, not really but I found out the reason. > Turns out that the whole thing is on amazon boxes and the DB machine (MySQL) > was being backed up every hour… The backup takes all the cpu (not the backup, > the bzip2 of the backup) and locks up MySQL for 2 minutes, if an instance > tries to access the db in those 2 minutes that instance won't be able to die > properly. > Solution? I removed the hourly backup which was useless and scheduled a > nightly backup with a reniced bzip2. No issues from that day! > > Thanks everybody for the help. > > Matteo > >> >> On 21/mar/2013, at 19:19, Chuck Hill <ch...@global-village.net> wrote: >> >>> >>> On 2013-03-21, at 10:54 AM, Altera WO Team wrote: >>> >>>> >>>> On 21/mar/2013, at 18:46, Chuck Hill <ch...@global-village.net> wrote: >>>> >>>>> >>>>> On 2013-03-21, at 6:47 AM, Altera WO Team wrote: >>>>> >>>>>> I tried anyway and I can confirm. I'm not creating needless sessions. >>>>>> >>>>>> The app locks up anyway though… >>>>> >>>>> Did adding the finally blocks in your terminate() method help? Is >>>>> anything in your code calling session.terminate() directly? A logout >>>>> link? >>>> >>>> the finally blocks didn't help. >>>> >>>> Something is calling session.terminate() directly though, happens when a >>>> something bad happens in a direct action. >>>> >>>> if (existingSession() != null) >>>> sess().terminate(); >>>> >>>> It's called only if we can't parse the parameters and should never happen. >>>> I'll put some logging in those cases. >>>> >>>> Why should this be a problem? >>> >>> I thought it was fixed in 5.4.3, but I could be wrong. In some past >>> version if that same URL can in in rapid succession, you would get >>> deadlocks like you are seeing. The solution at the time was to not call >>> terminate directly and instead set the session timeout to a couple seconds. >>> That allowed both requests to clear before terminating the session. >>> >>> >>> Chuck >>> >>> >>>>>> I lost hope in finding the real reason, for now I would be happy to find >>>>>> a dirty workaround. I need those apps to bounce anyway. >>>>>> >>>>>> I already tried using ERTimeToKill and it's ineffective. >>>>>> >>>>>> The lockups are quite rare: I have 10 instances running, bouncing every >>>>>> 6 hours and it happens maybe 2 times a week, but if an instance locks up >>>>>> the instances running become 9 and in the long run I'll have everything >>>>>> locked up. >>>>>> >>>>>> Any suggestions? >>>>> >>>>> I don't recall how ERTimeToKill works, but with those stuck threads you >>>>> are going to need to do >>>>> >>>>> Runtime.getRuntime().exit(1); >>>>> >>>>> and if THAT does not kill it, this should: >>>>> >>>>> Runtime.getRuntime().halt(1); >>>>> >>>>> >>>>> Chuck >>>>>> >>>>>> On 20/mar/2013, at 01:16, Chuck Hill <ch...@global-village.net> wrote: >>>>>> >>>>>>> I think the problem is not that it is creating needless sessions, but >>>>>>> that a checked-out session is not getting checked back in. >>>>>>> >>>>>>> Chuck >>>>>>> >>>>>>> >>>>>>> On 2013-03-19, at 5:08 PM, Simon wrote: >>>>>>> >>>>>>>> if we have this kind of issue the first thing we do is log out session >>>>>>>> creation and check the stack traces. stick something like this in your >>>>>>>> session constructor then check the output: >>>>>>>> >>>>>>>> public Session() { >>>>>>>> super(); >>>>>>>> StringWriter stringWriter = new StringWriter(); >>>>>>>> >>>>>>>> PrintWriter printWriter = new PrintWriter(stringWriter); >>>>>>>> >>>>>>>> (new Throwable()).printStackTrace(printWriter); >>>>>>>> >>>>>>>> String trace = stringWriter.toString(); <---- log this somewhere that >>>>>>>> you can get easy access to >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 19 March 2013 23:15, Altera WO Team <webobje...@altera.it> wrote: >>>>>>>> Wow, good hint! >>>>>>>> >>>>>>>> In theory I'm not touching a Session but sometimes, when something in >>>>>>>> an EO changes I trigger e-mail sending. >>>>>>>> I use ERMailDeliveryHTML using a component instantiated with a brand >>>>>>>> new wocontext using ERXWOContext.newContext() >>>>>>>> the component is not referencing a Session in any part. >>>>>>>> >>>>>>>> Could it be the cause? >>>>>>>> >>>>>>>> Matteo >>>>>>>> >>>>>>>> >>>>>>>> On 19/mar/2013, at 21:24, Simon <si...@potwells.co.uk> wrote: >>>>>>>> >>>>>>>>> ...or you are touching the session object outside the RR loop. the >>>>>>>>> classic gotcha is rendering a component in a thread that touches the >>>>>>>>> session in some way e.g. delivering an email in a thread that uses a >>>>>>>>> component to render it's content... been caught by that one soooo >>>>>>>>> many times! >>>>>>>>> >>>>>>>>> >>>>>>>>> On 19 March 2013 17:51, Chuck Hill <ch...@global-village.net> wrote: >>>>>>>>> Hi Matteo, >>>>>>>>> >>>>>>>>> You have one or more Zombie (aka Immortal) Sessions, as shown by >>>>>>>>> stack traces like this: >>>>>>>>> "WorkerThread11" prio=10 tid=0x0000000041848800 nid=0x1010 in >>>>>>>>> Object.wait() [0x00007f16f7cfa000] >>>>>>>>> java.lang.Thread.State: WAITING (on object monitor) >>>>>>>>> at java.lang.Object.wait(Native Method) >>>>>>>>> - waiting on <0x00000000d120b328> (a >>>>>>>>> com.webobjects.appserver.WOSessionStore$TimeoutEntry) >>>>>>>>> at java.lang.Object.wait(Object.java:485) >>>>>>>>> at >>>>>>>>> com.webobjects.appserver.WOSessionStore.checkOutSessionWithID(WOSessionStore.java:191) >>>>>>>>> - locked <0x00000000d120b328> (a >>>>>>>>> com.webobjects.appserver.WOSessionStore$TimeoutEntry) >>>>>>>>> at >>>>>>>>> com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1913) >>>>>>>>> at >>>>>>>>> er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:2403) >>>>>>>>> at >>>>>>>>> er.extensions.appserver.ERXWOContext.existingSession(ERXWOContext.java:57) >>>>>>>>> at >>>>>>>>> er.extensions.appserver.ERXWOContext.hasSession(ERXWOContext.java:69) >>>>>>>>> at >>>>>>>>> com.webobjects.appserver.WOAction.existingSession(WOAction.java:190) >>>>>>>>> at com.tla.calendar.DirectAction.goToAction(DirectAction.java:454) >>>>>>>>> >>>>>>>>> >>>>>>>>> This likely has one of two causes: >>>>>>>>> 1. The application is getting OutOfMemory errors, which can leave the >>>>>>>>> session store in an insane state >>>>>>>>> 2. The app is throwing an exception from sleep() in Session. If you >>>>>>>>> overrride sleep() it should use a try...finally block >>>>>>>>> >>>>>>>>> public void sleep() { >>>>>>>>> try { >>>>>>>>> // Your code here! >>>>>>>>> } finally { >>>>>>>>> super.sleep(); >>>>>>>>> } >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> Chuck >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2013-03-19, at 9:38 AM, Altera WO Team wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> I'm having a strange issue on a WO installation on EC2 (oracle jvm). >>>>>>>>>> Same strange application which had immortal sessions… >>>>>>>>>> >>>>>>>>>> Sometimes (quite rarely) a bounced application (put in refuse new >>>>>>>>>> sessions) never quits and it's not accessible from JavaMonitor. >>>>>>>>>> If I look at the logs i see: >>>>>>>>>> >>>>>>>>>> Mar 19 12:38:52 B2C[2002] (ERXNSLogLog4jBridge.java:44) WARN NSLog >>>>>>>>>> - <com.tla.calendar.Application>: refusing new clients and below min >>>>>>>>>> active session threshold >>>>>>>>>> Mar 19 12:38:52 B2C[2002] (ERXNSLogLog4jBridge.java:44) WARN NSLog >>>>>>>>>> - <com.tla.calendar.Application>: about to terminate... >>>>>>>>>> >>>>>>>>>> The only thing left is to kill the instance… Which is not nice. >>>>>>>>>> >>>>>>>>>> I'm not overriding the terminate() method in Application. >>>>>>>>>> >>>>>>>>>> I am attaching a stack trace if it helps. >>>>>>>>>> <B2Cjstack.txt> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Matteo Centro >>>>>>>>>> _______________________________________________ >>>>>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net >>>>>>>>>> >>>>>>>>>> This email sent to ch...@global-village.net >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Chuck Hill >>>>>>>>> Executive Managing Partner, VP Development and Technical Services >>>>>>>>> >>>>>>>>> Practical WebObjects - for developers who want to increase their >>>>>>>>> overall knowledge of WebObjects or who are trying to solve specific >>>>>>>>> problems. >>>>>>>>> http://www.global-village.net/gvc/practical_webobjects >>>>>>>>> >>>>>>>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >>>>>>>>> Growing Companies in B.C! >>>>>>>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 >>>>>>>>> ranking of Canada’s Fastest-Growing Companies by PROFIT Magazine! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/simon%40potwells.co.uk >>>>>>>>> >>>>>>>>> This email sent to si...@potwells.co.uk >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Chuck Hill >>>>>>> Executive Managing Partner, VP Development and Technical Services >>>>>>> >>>>>>> Practical WebObjects - for developers who want to increase their >>>>>>> overall knowledge of WebObjects or who are trying to solve specific >>>>>>> problems. >>>>>>> http://www.global-village.net/gvc/practical_webobjects >>>>>>> >>>>>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >>>>>>> Growing Companies in B.C! >>>>>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking >>>>>>> of Canada’s Fastest-Growing Companies by PROFIT Magazine! >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> Chuck Hill >>>>> Executive Managing Partner, VP Development and Technical Services >>>>> >>>>> Practical WebObjects - for developers who want to increase their overall >>>>> knowledge of WebObjects or who are trying to solve specific problems. >>>>> http://www.global-village.net/gvc/practical_webobjects >>>>> >>>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >>>>> Growing Companies in B.C! >>>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of >>>>> Canada’s Fastest-Growing Companies by PROFIT Magazine! >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> Chuck Hill >>> Executive Managing Partner, VP Development and Technical Services >>> >>> Practical WebObjects - for developers who want to increase their overall >>> knowledge of WebObjects or who are trying to solve specific problems. >>> http://www.global-village.net/gvc/practical_webobjects >>> >>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >>> Growing Companies in B.C! >>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of >>> Canada’s Fastest-Growing Companies by PROFIT Magazine! >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com > > This email sent to kelleh...@gmail.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com