You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(13) |
Nov
(16) |
Dec
(29) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(38) |
Feb
(51) |
Mar
(51) |
Apr
(115) |
May
(82) |
Jun
(30) |
Jul
(50) |
Aug
(68) |
Sep
(57) |
Oct
(160) |
Nov
(80) |
Dec
(78) |
| 2004 |
Jan
(71) |
Feb
(75) |
Mar
(108) |
Apr
(87) |
May
(79) |
Jun
(70) |
Jul
(69) |
Aug
(39) |
Sep
(52) |
Oct
(47) |
Nov
(50) |
Dec
(32) |
| 2005 |
Jan
(22) |
Feb
(122) |
Mar
(46) |
Apr
(76) |
May
(31) |
Jun
(51) |
Jul
(61) |
Aug
(70) |
Sep
(37) |
Oct
(46) |
Nov
(57) |
Dec
(83) |
| 2006 |
Jan
(55) |
Feb
(81) |
Mar
(51) |
Apr
(67) |
May
(77) |
Jun
(43) |
Jul
(106) |
Aug
(64) |
Sep
(47) |
Oct
(64) |
Nov
(60) |
Dec
(12) |
| 2007 |
Jan
(50) |
Feb
(93) |
Mar
(49) |
Apr
(56) |
May
(40) |
Jun
(63) |
Jul
(40) |
Aug
(47) |
Sep
(54) |
Oct
(37) |
Nov
(54) |
Dec
(37) |
| 2008 |
Jan
(35) |
Feb
(39) |
Mar
(26) |
Apr
(14) |
May
(23) |
Jun
(51) |
Jul
(43) |
Aug
(26) |
Sep
(29) |
Oct
(31) |
Nov
(24) |
Dec
(16) |
| 2009 |
Jan
(21) |
Feb
(30) |
Mar
(74) |
Apr
(26) |
May
(26) |
Jun
(43) |
Jul
(23) |
Aug
(23) |
Sep
(15) |
Oct
(27) |
Nov
(37) |
Dec
(10) |
| 2010 |
Jan
(16) |
Feb
(28) |
Mar
(16) |
Apr
(45) |
May
(8) |
Jun
(68) |
Jul
(45) |
Aug
(44) |
Sep
(51) |
Oct
(7) |
Nov
(20) |
Dec
(21) |
| 2011 |
Jan
(14) |
Feb
(17) |
Mar
(7) |
Apr
(7) |
May
(48) |
Jun
(23) |
Jul
(5) |
Aug
(33) |
Sep
(22) |
Oct
(14) |
Nov
(14) |
Dec
(5) |
| 2012 |
Jan
|
Feb
(10) |
Mar
(12) |
Apr
(51) |
May
(10) |
Jun
(8) |
Jul
(14) |
Aug
(22) |
Sep
(9) |
Oct
(24) |
Nov
(14) |
Dec
(13) |
| 2013 |
Jan
(12) |
Feb
(4) |
Mar
(14) |
Apr
(19) |
May
(2) |
Jun
(5) |
Jul
(13) |
Aug
(10) |
Sep
(4) |
Oct
(11) |
Nov
(13) |
Dec
(2) |
| 2014 |
Jan
(3) |
Feb
(14) |
Mar
(5) |
Apr
(10) |
May
(10) |
Jun
(11) |
Jul
(10) |
Aug
(3) |
Sep
(13) |
Oct
(22) |
Nov
(14) |
Dec
(32) |
| 2015 |
Jan
(8) |
Feb
(2) |
Mar
(17) |
Apr
(1) |
May
(24) |
Jun
|
Jul
(4) |
Aug
|
Sep
(9) |
Oct
(9) |
Nov
(5) |
Dec
(2) |
| 2016 |
Jan
(8) |
Feb
(6) |
Mar
(6) |
Apr
(9) |
May
(3) |
Jun
(2) |
Jul
(7) |
Aug
(6) |
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
| 2017 |
Jan
(9) |
Feb
(8) |
Mar
(6) |
Apr
|
May
|
Jun
(3) |
Jul
(13) |
Aug
(10) |
Sep
(8) |
Oct
|
Nov
(6) |
Dec
|
| 2018 |
Jan
|
Feb
(5) |
Mar
(7) |
Apr
(2) |
May
|
Jun
|
Jul
(3) |
Aug
(2) |
Sep
(9) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
| 2019 |
Jan
(9) |
Feb
|
Mar
|
Apr
(10) |
May
(3) |
Jun
|
Jul
(7) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2020 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2021 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(3) |
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2023 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Santo74 <gds...@de...> - 2009-05-25 19:23:30
|
Leif, We did some new tests with the latest version of the wrapper (v3.3.5) and it seems that you are right. The first tests were successful, so we expect that the issue is indeed resolved in the latest version of the wrapper. It remains unclear to me however why this bug would prevent us from starting a wrapper instance on a second zone. I know this bug shouldn't have anything to do with zones in particular, but at least we couln't start a second wrapper on a separate zone (unless the port was in TIME_WAIT). In some way this does make it also zone related in my opinion. Anyway, we are able now to start multiple wrapper instances without having to modify the port ranges and that's the most important to us. So thanks for the great support and I'm glad we could solve the problem with your help. regards, gds Leif Mortenson-3 wrote: > > Santo, > We have been doing some more testing following all of your steps with > "root" zones. But everything is working as expected. > > Rereading your email today however, I think I may know what the > problem is. The error you show in #4. > --- > INFO | jvm 2 | 2009/05/20 12:12:34 | java.net.SocketException: > Address already in use > --- > This is a bug in Solaris versions that was fixed in version 3.3.0. It > actually has nothing to do with zones and should happen on any Solaris > system if you start one copy of the Wrapper, stop it, and then > immediately start a new copy. The first copy will bind to port 31000 > and then the system puts that into TIME_WAIT state for two minutes. > During that time, the second instance of the Wrapper was not correctly > recognizing the cause of the SocketException that was thrown. On > many platforms a BindException is thrown. But Solaris throws a > SocketException, which could mean anything. It is necessary to check > the text of the message to see if it is a bind problem. That text > starts with "errno: 48" for older JVMs, but is "Address already in > use" on newer ones. > The bug can be found here. It also starts out thinking it is a zone > problem: > https://sourceforge.net/tracker/?func=detail&aid=1594073&group_id=39428&atid=425187 > > Could you please give this a try with the 3.3.5 release? > > Thanks, > Leif > > On Wed, May 20, 2009 at 10:25 PM, Santo74 > <gds...@de...> wrote: >> >> Leif, >> >> In the meantime our solaris system is up and running again (a sparc >> system >> by the way) >> and we already did some new tests with the wrapper and could reproduce >> the >> following: >> >> zone1 runs 2 wrappers (our application consists of 2 separate components >> and >> on some systems they need to run both, hence the 2 wrapper instances) >> The default port ranges are used and everything runs as expected: >> 2 connections between wrapper en jvm, 32000 - 31000 and 32001 - 31001 >> >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> localhost.31001 localhost.32001 49152 0 49152 0 >> ESTABLISHED >> localhost.32001 localhost.31001 49152 0 49170 0 >> ESTABLISHED >> >> We will keep this zone1 running as is and test some scenarios on zone2: >> >> 1) define an explicit port range for the wrapper (something outside 32000 >> range) and start it. >> This works: >> >> localhost.31000 localhost.42700 49152 0 49152 0 >> ESTABLISHED >> localhost.42700 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> 2) define an explicit port range for the wrapper (within the 32000 range, >> but exclusive the 2 ports in use on zone 1 (i.e. 32000 and 32001)). >> This works: >> >> localhost.31000 localhost.32002 49152 0 49152 0 >> ESTABLISHED >> localhost.32002 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> 3) remove the explicit port range and restart with the default settings. >> This surprisingly also works >> (apparently because the previous jvm port is in TIME_WAIT, which causes >> the jvm to use another port (which is however also in use on zone1)): >> >> localhost.31000 localhost.42700 49170 0 49152 0 >> TIME_WAIT >> localhost.31001 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31001 49152 0 49170 0 >> ESTABLISHED >> >> 4) restart again without changing anything (i.e. again use all the >> defaults). >> Doesn't work this time (jvm tries to use port 31000 again): >> >> INFO | jvm 2 | 2009/05/20 12:12:34 | java.net.SocketException: >> Address >> already in use >> >> 5) define an explicit port range for the jvm and start it >> Doesn't work either >> >> -> There is only 1 situation where we were able to start a wrapper on a >> second zone, using the same ports as on the first zone. >> Strangely enough this is caused by the fact that the previously allocated >> jvm port is in a TIME_WAIT state. >> At least, that's the only explanation we have for this. >> >> We also verified the type of zones configured on our testserver and it >> appears that our server is using "root" zones. >> Therefore I asked one of our consultants to verify the type of zones used >> at >> one of our customers. >> If they also use "root" zones, it might be that this has something to do >> with the issue. >> Unfortunately because of the long weekend it will take at least until >> monday >> before we have any news on this. >> >> Another interesting piece of info that we found is the following: >> >> ----- >> On a Solaris system with zones installed, the zones can communicate with >> each other over the >> network. The zones all have separate bindings, or connections, and the >> zones >> can all run their >> own server daemons. These daemons can listen on the same port numbers >> without any conflict. >> The IP stack resolves conflicts by considering the IP addresses for >> incoming >> connections. The >> IP addresses identify the zone. >> ----- >> >> Which would mean that solaris should take care of the port conflicts if >> they >> arise. >> And it seams to do this in case the initial port is in TIME_WAIT, but not >> in >> "normal" cases. >> >> regards, >> >> gds >> >> >> Leif Mortenson-3 wrote: >>> >>> Santo, >>> We created "sparse" zones rather than "root" zones because they share >>> much of the file system with the underlying OS. Our thinking was that >>> this would be more likely to show any resource conflicts. >>> >>> I agree that there are likely some configuration differences between >>> your systems and ours. We have been actively attempting to locate the >>> cause of this problem, but any information that you could provide >>> would be very helpful in narrowing this down. >>> >>> Our tests are being on an x86 server within a virtual machine. We >>> also have one Sparc server. But that is running Solaris 9 natively >>> and is being used for our build process. If possible, we would like >>> to avoid reinstalling that with Solaris 10 as we would need to restore >>> it later. I would be very surprised if a problem like this would work >>> differently on x86 vs Sparc however. >>> >>> Cheers, >>> Leif >>> >>> On Wed, May 20, 2009 at 5:50 PM, Santo74 >>> <gds...@de...> wrote: >>>> >>>> Leif, >>>> >>>> This is very strange, because we haven't come across any solaris 10 >>>> environment (with zones) >>>> not having this issue. >>>> Therefore it indeed looks like some configuration differences (or >>>> something) >>>> in comparison with your system. >>>> However, I still find it strange that other applications (not using the >>>> service wrapper) are >>>> not having this issue on the same zones. >>>> As for the security, it's true that our application runs under a >>>> dedicated >>>> user account (and therefore doesn't have full (root) privileges), but >>>> the >>>> IBM Tivoli Policy Server (which I mentioned before) is also running >>>> under >>>> a >>>> dedicated account (with limited privileges) as far as I know. >>>> >>>> This morning I heard that most of the problems with our solaris server >>>> should be solved later today, which >>>> means that I can hopefully start testing again next monday (long >>>> weekend >>>> over here). >>>> >>>> Thanks, >>>> >>>> gds >>>> >>>> >>>> >>>> Leif Mortenson-3 wrote: >>>>> >>>>> Santo, >>>>> We have done some tests with a server configured with 3 Zones as well >>>>> as done some more research. >>>>> >>>>> It does not appear to be possible to have multiple Zones "share" an IP >>>>> address. So they will each have their own IP. For that reason, there >>>>> should be no reason why any of the Zones would ever have any conflict >>>>> with bound ports. As I understand it. >>>>> >>>>> Below you will find the netstat output from 3 Zones on the same >>>>> machine each running a copy of the Wrapper. Each has an SSH >>>>> connection to the Zone as well as the two between the Wrapper and its >>>>> JVM. In all cases, the port number are the same. >>>>> >>>>> Because you have had reports from a few of customers, I am sure that >>>>> "something" is happening. But from the information to date, I am not >>>>> sure what the cause might be. Is it possible that there are some >>>>> security configurations setup on one or more of the Zones that would >>>>> prevent the Wrapper from starting? >>>>> >>>>> The Wrapper will loop over its 1000 possible ports looking for the >>>>> first one that it is able to bind to. If all 1000 fail to bind then >>>>> it reports that fact to the user. Rather than all 1000 ports >>>>> actually being already bound, it may be that the OS is refusing to >>>>> allow the Wrapper to bind to those ports for security reasons? >>>>> >>>>> Anyway, here is the netstat output from our 3 Zones. >>>>> >>>>> --- >>>>> jupiter >>>>> TCP: IPv4 >>>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>>> State >>>>> -------------------- -------------------- ----- ------ ----- ------ >>>>> ----------- >>>>> jupiter.22 192.168.0.128.59013 18816 0 49232 0 >>>>> ESTABLISHED >>>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>>> ESTABLISHED >>>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>>> ESTABLISHED >>>>> >>>>> Active UNIX domain sockets >>>>> Address Type Vnode Conn Local Addr Remote Addr >>>>> ffffffff889688f8 stream-ord 00000000 >>>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>>> ffffffff88968ac0 stream-ord 00000000 >>>>> 00000000 /tmp/.X11-unix/X0 >>>>> ffffffff87a38728 stream-ord 00000000 >>>>> 00000000 /tmp/.X11-unix/X0 >>>>> ffffffff88968730 stream-ord 00000000 >>>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>>> ffffffff87a38560 stream-ord 00000000 >>>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>>> ffffffff87a38008 stream-ord ffffffff8852b780 >>>>> 00000000 /var/run/zones/kore.console_sock >>>>> ffffffff88968c88 stream-ord 00000000 >>>>> 00000000 /tmp/.X11-unix/X0 >>>>> ffffffff87a38398 stream-ord ffffffff89c8bac0 >>>>> 00000000 /tmp/.X11-unix/X0 >>>>> ffffffff87a38ab8 stream-ord ffffffff882b5880 >>>>> 00000000 /var/run/zones/europa.console_sock >>>>> ffffffff87a38c80 stream-ord ffffffff87a3d740 >>>>> 00000000 /var/run/.inetd.uds >>>>> >>>>> europa: >>>>> TCP: IPv4 >>>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>>> State >>>>> -------------------- -------------------- ----- ------ ----- ------ >>>>> ----------- >>>>> europa.22 192.168.0.128.55040 13440 0 49232 0 >>>>> ESTABLISHED >>>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>>> ESTABLISHED >>>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>>> ESTABLISHED >>>>> >>>>> Active UNIX domain sockets >>>>> Address Type Vnode Conn Local Addr Remote Addr >>>>> ffffffff87a381d0 stream-ord ffffffff87de6740 >>>>> 00000000 /var/run/.inetd.uds >>>>> >>>>> kore: >>>>> TCP: IPv4 >>>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>>> State >>>>> -------------------- -------------------- ----- ------ ----- ------ >>>>> ----------- >>>>> kore.22 192.168.0.128.56248 17664 0 49232 0 >>>>> ESTABLISHED >>>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>>> ESTABLISHED >>>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>>> ESTABLISHED >>>>> >>>>> Active UNIX domain sockets >>>>> Address Type Vnode Conn Local Addr Remote Addr >>>>> ffffffff87a388f0 stream-ord ffffffff8aab4600 >>>>> 00000000 /var/run/.inetd.uds >>>>> --- >>>>> >>>>> We will keep poking around, but please let me know if you are able to >>>>> collect any more information. >>>>> >>>>> Cheers, >>>>> Leif >>>>> >>>>> >>>>> On Mon, May 18, 2009 at 8:14 PM, Santo74 >>>>> <gds...@de...> wrote: >>>>>> >>>>>> Leif, >>>>>> >>>>>> Regarding the issue of restarting the application after it crashed or >>>>>> was >>>>>> forcedly killed I will >>>>>> keep an eye on it and report back with more info whenever it should >>>>>> happen >>>>>> again. >>>>>> It is indeed not the behaviour that I would expect from the wrapper >>>>>> especialy now that you confirmed that it isn't allocating the whole >>>>>> range. >>>>>> >>>>>> As you already mentioned correctly I won't be able yet to verify if I >>>>>> can >>>>>> start the app on a second zone after having stopped the app on the >>>>>> first >>>>>> zone for at least 2 min. >>>>>> >>>>>> Concerning your last question: our dev/test system is currently >>>>>> configured >>>>>> with 5 zones, all using their own ip address. >>>>>> I have no idea about the configuration of the solaris systems at our >>>>>> customers. >>>>>> >>>>>> regards, >>>>>> >>>>>> gds >>>>>> >>>>>> >>>>>> Leif Mortenson-2 wrote: >>>>>>> >>>>>>> Santo, >>>>>>> We are in the process of setting up a Solaris 10 server to do some >>>>>>> testing with Zones in house. We have a Solaris 9 server, but out >>>>>>> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >>>>>>> server. I will let you know what we found. >>>>>>> >>>>>>> As I explained, the Wrapper never actually attempts to allocate all >>>>>>> 1000 ports unless they are already blocked. If the first instance >>>>>>> of >>>>>>> your application uses ports 32000 and 31000 and that crashes, it is >>>>>>> possible that the 32000 port will be locked for 2 minutes so the >>>>>>> second invocation of the JVM would use 32001 and 31000. But the >>>>>>> other 999 ports would have never been accessed so I can imagine no >>>>>>> reason why they would be locked. >>>>>>> >>>>>>> In your case with Solaris Zones. You say that the Wrapper can not >>>>>>> start on these second Zone when one is running on the first. Are >>>>>>> you >>>>>>> able to verify that the wrapper on the second Zone works if the >>>>>>> first >>>>>>> had not been running for at least 2 minutes? I am wondering if it >>>>>>> is >>>>>>> a configuration issue. >>>>>>> >>>>>>> We will be able to test this shortly ourselves. And it doesn't >>>>>>> sound >>>>>>> like you will be able to test it until your system is back up and >>>>>>> running. >>>>>>> >>>>>>> Sorry for this next question as it may show my lack of knowledge >>>>>>> with >>>>>>> Solaris Zones: >>>>>>> With your system, are both Zones sharing the same IP address? If >>>>>>> so, >>>>>>> they should not be able to share ports on that IP. In this case >>>>>>> however, we are only binding to localhost, so it should not matter. >>>>>>> >>>>>>> I will post back as soon as we have gotten this tested out. >>>>>>> >>>>>>> Cheers, >>>>>>> Leif > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. > Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://www.creativitycat.com > _______________________________________________ > Wrapper-user mailing list > Wra...@li... > https://lists.sourceforge.net/lists/listinfo/wrapper-user > > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23711826.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Christian H. <ch...@aa...> - 2009-05-25 07:20:17
|
Hi Leif, i'm afraid that i'm currently not familiar with the upstart technology. Just found it when I searched for daemon stuff. I will evaluate upstart these days. Greetings Christian -----Ursprüngliche Nachricht----- Von: Leif Mortenson [mailto:le...@ta...] Gesendet: Montag, 25. Mai 2009 04:54 An: wra...@li... Betreff: Re: [Wrapper-user] Upstart support? Christian, Thanks for pointing this out. We have added this to our todo list for a future release. Looking at the upstart web site, it does not appear that this is yet a standard technology however. As you are obviously familiar with working with Upstart, is this something you would be willing to submit a patch for? Or provide more information on what you need it to do? It looks like this is a new alternative way of launching and controlling daemon applications. >From a quick overview it looks like this would be a matter implementing a new version of our shell script? Cheers, Leif On Fri, May 22, 2009 at 11:39 PM, Christian Hehtke <ch...@aa...> wrote: > Hi all, > > are there any plans to integrate upstart (http://upstart.ubuntu.com/) into > the service wrapper? It would be nice to have start, stop, etc functionality > via wrapper parameter like in windows! > > Have a nice weekend. > > Christian ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user |
|
From: Leif M. <lei...@ta...> - 2009-05-25 04:57:32
|
Santo, We have been doing some more testing following all of your steps with "root" zones. But everything is working as expected. Rereading your email today however, I think I may know what the problem is. The error you show in #4. --- INFO | jvm 2 | 2009/05/20 12:12:34 | java.net.SocketException: Address already in use --- This is a bug in Solaris versions that was fixed in version 3.3.0. It actually has nothing to do with zones and should happen on any Solaris system if you start one copy of the Wrapper, stop it, and then immediately start a new copy. The first copy will bind to port 31000 and then the system puts that into TIME_WAIT state for two minutes. During that time, the second instance of the Wrapper was not correctly recognizing the cause of the SocketException that was thrown. On many platforms a BindException is thrown. But Solaris throws a SocketException, which could mean anything. It is necessary to check the text of the message to see if it is a bind problem. That text starts with "errno: 48" for older JVMs, but is "Address already in use" on newer ones. The bug can be found here. It also starts out thinking it is a zone problem: https://sourceforge.net/tracker/?func=detail&aid=1594073&group_id=39428&atid=425187 Could you please give this a try with the 3.3.5 release? Thanks, Leif On Wed, May 20, 2009 at 10:25 PM, Santo74 <gds...@de...> wrote: > > Leif, > > In the meantime our solaris system is up and running again (a sparc system > by the way) > and we already did some new tests with the wrapper and could reproduce the > following: > > zone1 runs 2 wrappers (our application consists of 2 separate components and > on some systems they need to run both, hence the 2 wrapper instances) > The default port ranges are used and everything runs as expected: > 2 connections between wrapper en jvm, 32000 - 31000 and 32001 - 31001 > > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > localhost.31001 localhost.32001 49152 0 49152 0 > ESTABLISHED > localhost.32001 localhost.31001 49152 0 49170 0 > ESTABLISHED > > We will keep this zone1 running as is and test some scenarios on zone2: > > 1) define an explicit port range for the wrapper (something outside 32000 > range) and start it. > This works: > > localhost.31000 localhost.42700 49152 0 49152 0 > ESTABLISHED > localhost.42700 localhost.31000 49152 0 49170 0 > ESTABLISHED > > 2) define an explicit port range for the wrapper (within the 32000 range, > but exclusive the 2 ports in use on zone 1 (i.e. 32000 and 32001)). > This works: > > localhost.31000 localhost.32002 49152 0 49152 0 > ESTABLISHED > localhost.32002 localhost.31000 49152 0 49170 0 > ESTABLISHED > > 3) remove the explicit port range and restart with the default settings. > This surprisingly also works > (apparently because the previous jvm port is in TIME_WAIT, which causes > the jvm to use another port (which is however also in use on zone1)): > > localhost.31000 localhost.42700 49170 0 49152 0 > TIME_WAIT > localhost.31001 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31001 49152 0 49170 0 > ESTABLISHED > > 4) restart again without changing anything (i.e. again use all the > defaults). > Doesn't work this time (jvm tries to use port 31000 again): > > INFO | jvm 2 | 2009/05/20 12:12:34 | java.net.SocketException: Address > already in use > > 5) define an explicit port range for the jvm and start it > Doesn't work either > > -> There is only 1 situation where we were able to start a wrapper on a > second zone, using the same ports as on the first zone. > Strangely enough this is caused by the fact that the previously allocated > jvm port is in a TIME_WAIT state. > At least, that's the only explanation we have for this. > > We also verified the type of zones configured on our testserver and it > appears that our server is using "root" zones. > Therefore I asked one of our consultants to verify the type of zones used at > one of our customers. > If they also use "root" zones, it might be that this has something to do > with the issue. > Unfortunately because of the long weekend it will take at least until monday > before we have any news on this. > > Another interesting piece of info that we found is the following: > > ----- > On a Solaris system with zones installed, the zones can communicate with > each other over the > network. The zones all have separate bindings, or connections, and the zones > can all run their > own server daemons. These daemons can listen on the same port numbers > without any conflict. > The IP stack resolves conflicts by considering the IP addresses for incoming > connections. The > IP addresses identify the zone. > ----- > > Which would mean that solaris should take care of the port conflicts if they > arise. > And it seams to do this in case the initial port is in TIME_WAIT, but not in > "normal" cases. > > regards, > > gds > > > Leif Mortenson-3 wrote: >> >> Santo, >> We created "sparse" zones rather than "root" zones because they share >> much of the file system with the underlying OS. Our thinking was that >> this would be more likely to show any resource conflicts. >> >> I agree that there are likely some configuration differences between >> your systems and ours. We have been actively attempting to locate the >> cause of this problem, but any information that you could provide >> would be very helpful in narrowing this down. >> >> Our tests are being on an x86 server within a virtual machine. We >> also have one Sparc server. But that is running Solaris 9 natively >> and is being used for our build process. If possible, we would like >> to avoid reinstalling that with Solaris 10 as we would need to restore >> it later. I would be very surprised if a problem like this would work >> differently on x86 vs Sparc however. >> >> Cheers, >> Leif >> >> On Wed, May 20, 2009 at 5:50 PM, Santo74 >> <gds...@de...> wrote: >>> >>> Leif, >>> >>> This is very strange, because we haven't come across any solaris 10 >>> environment (with zones) >>> not having this issue. >>> Therefore it indeed looks like some configuration differences (or >>> something) >>> in comparison with your system. >>> However, I still find it strange that other applications (not using the >>> service wrapper) are >>> not having this issue on the same zones. >>> As for the security, it's true that our application runs under a >>> dedicated >>> user account (and therefore doesn't have full (root) privileges), but the >>> IBM Tivoli Policy Server (which I mentioned before) is also running under >>> a >>> dedicated account (with limited privileges) as far as I know. >>> >>> This morning I heard that most of the problems with our solaris server >>> should be solved later today, which >>> means that I can hopefully start testing again next monday (long weekend >>> over here). >>> >>> Thanks, >>> >>> gds >>> >>> >>> >>> Leif Mortenson-3 wrote: >>>> >>>> Santo, >>>> We have done some tests with a server configured with 3 Zones as well >>>> as done some more research. >>>> >>>> It does not appear to be possible to have multiple Zones "share" an IP >>>> address. So they will each have their own IP. For that reason, there >>>> should be no reason why any of the Zones would ever have any conflict >>>> with bound ports. As I understand it. >>>> >>>> Below you will find the netstat output from 3 Zones on the same >>>> machine each running a copy of the Wrapper. Each has an SSH >>>> connection to the Zone as well as the two between the Wrapper and its >>>> JVM. In all cases, the port number are the same. >>>> >>>> Because you have had reports from a few of customers, I am sure that >>>> "something" is happening. But from the information to date, I am not >>>> sure what the cause might be. Is it possible that there are some >>>> security configurations setup on one or more of the Zones that would >>>> prevent the Wrapper from starting? >>>> >>>> The Wrapper will loop over its 1000 possible ports looking for the >>>> first one that it is able to bind to. If all 1000 fail to bind then >>>> it reports that fact to the user. Rather than all 1000 ports >>>> actually being already bound, it may be that the OS is refusing to >>>> allow the Wrapper to bind to those ports for security reasons? >>>> >>>> Anyway, here is the netstat output from our 3 Zones. >>>> >>>> --- >>>> jupiter >>>> TCP: IPv4 >>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>> State >>>> -------------------- -------------------- ----- ------ ----- ------ >>>> ----------- >>>> jupiter.22 192.168.0.128.59013 18816 0 49232 0 >>>> ESTABLISHED >>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>> ESTABLISHED >>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>> ESTABLISHED >>>> >>>> Active UNIX domain sockets >>>> Address Type Vnode Conn Local Addr Remote Addr >>>> ffffffff889688f8 stream-ord 00000000 >>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>> ffffffff88968ac0 stream-ord 00000000 >>>> 00000000 /tmp/.X11-unix/X0 >>>> ffffffff87a38728 stream-ord 00000000 >>>> 00000000 /tmp/.X11-unix/X0 >>>> ffffffff88968730 stream-ord 00000000 >>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>> ffffffff87a38560 stream-ord 00000000 >>>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>>> ffffffff87a38008 stream-ord ffffffff8852b780 >>>> 00000000 /var/run/zones/kore.console_sock >>>> ffffffff88968c88 stream-ord 00000000 >>>> 00000000 /tmp/.X11-unix/X0 >>>> ffffffff87a38398 stream-ord ffffffff89c8bac0 >>>> 00000000 /tmp/.X11-unix/X0 >>>> ffffffff87a38ab8 stream-ord ffffffff882b5880 >>>> 00000000 /var/run/zones/europa.console_sock >>>> ffffffff87a38c80 stream-ord ffffffff87a3d740 >>>> 00000000 /var/run/.inetd.uds >>>> >>>> europa: >>>> TCP: IPv4 >>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>> State >>>> -------------------- -------------------- ----- ------ ----- ------ >>>> ----------- >>>> europa.22 192.168.0.128.55040 13440 0 49232 0 >>>> ESTABLISHED >>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>> ESTABLISHED >>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>> ESTABLISHED >>>> >>>> Active UNIX domain sockets >>>> Address Type Vnode Conn Local Addr Remote Addr >>>> ffffffff87a381d0 stream-ord ffffffff87de6740 >>>> 00000000 /var/run/.inetd.uds >>>> >>>> kore: >>>> TCP: IPv4 >>>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>>> State >>>> -------------------- -------------------- ----- ------ ----- ------ >>>> ----------- >>>> kore.22 192.168.0.128.56248 17664 0 49232 0 >>>> ESTABLISHED >>>> localhost.31000 localhost.32000 49152 0 49152 0 >>>> ESTABLISHED >>>> localhost.32000 localhost.31000 49152 0 49170 0 >>>> ESTABLISHED >>>> >>>> Active UNIX domain sockets >>>> Address Type Vnode Conn Local Addr Remote Addr >>>> ffffffff87a388f0 stream-ord ffffffff8aab4600 >>>> 00000000 /var/run/.inetd.uds >>>> --- >>>> >>>> We will keep poking around, but please let me know if you are able to >>>> collect any more information. >>>> >>>> Cheers, >>>> Leif >>>> >>>> >>>> On Mon, May 18, 2009 at 8:14 PM, Santo74 >>>> <gds...@de...> wrote: >>>>> >>>>> Leif, >>>>> >>>>> Regarding the issue of restarting the application after it crashed or >>>>> was >>>>> forcedly killed I will >>>>> keep an eye on it and report back with more info whenever it should >>>>> happen >>>>> again. >>>>> It is indeed not the behaviour that I would expect from the wrapper >>>>> especialy now that you confirmed that it isn't allocating the whole >>>>> range. >>>>> >>>>> As you already mentioned correctly I won't be able yet to verify if I >>>>> can >>>>> start the app on a second zone after having stopped the app on the >>>>> first >>>>> zone for at least 2 min. >>>>> >>>>> Concerning your last question: our dev/test system is currently >>>>> configured >>>>> with 5 zones, all using their own ip address. >>>>> I have no idea about the configuration of the solaris systems at our >>>>> customers. >>>>> >>>>> regards, >>>>> >>>>> gds >>>>> >>>>> >>>>> Leif Mortenson-2 wrote: >>>>>> >>>>>> Santo, >>>>>> We are in the process of setting up a Solaris 10 server to do some >>>>>> testing with Zones in house. We have a Solaris 9 server, but out >>>>>> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >>>>>> server. I will let you know what we found. >>>>>> >>>>>> As I explained, the Wrapper never actually attempts to allocate all >>>>>> 1000 ports unless they are already blocked. If the first instance of >>>>>> your application uses ports 32000 and 31000 and that crashes, it is >>>>>> possible that the 32000 port will be locked for 2 minutes so the >>>>>> second invocation of the JVM would use 32001 and 31000. But the >>>>>> other 999 ports would have never been accessed so I can imagine no >>>>>> reason why they would be locked. >>>>>> >>>>>> In your case with Solaris Zones. You say that the Wrapper can not >>>>>> start on these second Zone when one is running on the first. Are you >>>>>> able to verify that the wrapper on the second Zone works if the first >>>>>> had not been running for at least 2 minutes? I am wondering if it is >>>>>> a configuration issue. >>>>>> >>>>>> We will be able to test this shortly ourselves. And it doesn't sound >>>>>> like you will be able to test it until your system is back up and >>>>>> running. >>>>>> >>>>>> Sorry for this next question as it may show my lack of knowledge with >>>>>> Solaris Zones: >>>>>> With your system, are both Zones sharing the same IP address? If so, >>>>>> they should not be able to share ports on that IP. In this case >>>>>> however, we are only binding to localhost, so it should not matter. >>>>>> >>>>>> I will post back as soon as we have gotten this tested out. >>>>>> >>>>>> Cheers, >>>>>> Leif |
|
From: Leif M. <le...@ta...> - 2009-05-25 02:54:20
|
Christian, Thanks for pointing this out. We have added this to our todo list for a future release. Looking at the upstart web site, it does not appear that this is yet a standard technology however. As you are obviously familiar with working with Upstart, is this something you would be willing to submit a patch for? Or provide more information on what you need it to do? It looks like this is a new alternative way of launching and controlling daemon applications. >From a quick overview it looks like this would be a matter implementing a new version of our shell script? Cheers, Leif On Fri, May 22, 2009 at 11:39 PM, Christian Hehtke <ch...@aa...> wrote: > Hi all, > > are there any plans to integrate upstart (http://upstart.ubuntu.com/) into > the service wrapper? It would be nice to have start, stop, etc functionality > via wrapper parameter like in windows! > > Have a nice weekend. > > Christian |
|
From: Christian H. <ch...@aa...> - 2009-05-22 14:39:38
|
Hi all, are there any plans to integrate upstart (http://upstart.ubuntu.com/ <http://upstart.ubuntu.com/> ) into the service wrapper? It would be nice to have start, stop, etc functionality via wrapper parameter like in windows! Have a nice weekend. Christian |
|
From: Leif M. <lei...@ta...> - 2009-05-21 11:36:33
|
Lance, I like this idea and have added it to our internal todo list for a near term future version. I will let you know when there is progress made on this feature. Cheers, Leif On Thu, May 21, 2009 at 7:05 PM, Lance White <lan...@lo...> wrote: > Is there any way of changing the timezone on the log message timestamps that > the wrapper logs? > > > > Our app always runs in GMT, so we have a wrapper parameter : > > > > wrapper.java.additional.5=-Duser.timezone=GMT > > > > to force the JVM into using this timezone, and any internal logs are always > in GMT. > > > > The wrapper however logs in whatever timezone the machine is currently > running in – BST currently, and so there is a mismatch in times between the > wrapper log and our internal logs. > > > > It would be nice to add the user.timezone property to the wrappers JVM to be > able to control this, but I can’t see any way of currently doing it. > > > > > > Cheers > > > > Lance |
|
From: Lance W. <lan...@lo...> - 2009-05-21 10:58:04
|
Is there any way of changing the timezone on the log message timestamps that the wrapper logs? Our app always runs in GMT, so we have a wrapper parameter : wrapper.java.additional.5=-Duser.timezone=GMT to force the JVM into using this timezone, and any internal logs are always in GMT. The wrapper however logs in whatever timezone the machine is currently running in - BST currently, and so there is a mismatch in times between the wrapper log and our internal logs. It would be nice to add the user.timezone property to the wrappers JVM to be able to control this, but I can't see any way of currently doing it. Cheers Lance |
|
From: Santo74 <gds...@de...> - 2009-05-20 13:25:24
|
Leif, In the meantime our solaris system is up and running again (a sparc system by the way) and we already did some new tests with the wrapper and could reproduce the following: zone1 runs 2 wrappers (our application consists of 2 separate components and on some systems they need to run both, hence the 2 wrapper instances) The default port ranges are used and everything runs as expected: 2 connections between wrapper en jvm, 32000 - 31000 and 32001 - 31001 localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED localhost.31001 localhost.32001 49152 0 49152 0 ESTABLISHED localhost.32001 localhost.31001 49152 0 49170 0 ESTABLISHED We will keep this zone1 running as is and test some scenarios on zone2: 1) define an explicit port range for the wrapper (something outside 32000 range) and start it. This works: localhost.31000 localhost.42700 49152 0 49152 0 ESTABLISHED localhost.42700 localhost.31000 49152 0 49170 0 ESTABLISHED 2) define an explicit port range for the wrapper (within the 32000 range, but exclusive the 2 ports in use on zone 1 (i.e. 32000 and 32001)). This works: localhost.31000 localhost.32002 49152 0 49152 0 ESTABLISHED localhost.32002 localhost.31000 49152 0 49170 0 ESTABLISHED 3) remove the explicit port range and restart with the default settings. This surprisingly also works (apparently because the previous jvm port is in TIME_WAIT, which causes the jvm to use another port (which is however also in use on zone1)): localhost.31000 localhost.42700 49170 0 49152 0 TIME_WAIT localhost.31001 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31001 49152 0 49170 0 ESTABLISHED 4) restart again without changing anything (i.e. again use all the defaults). Doesn't work this time (jvm tries to use port 31000 again): INFO | jvm 2 | 2009/05/20 12:12:34 | java.net.SocketException: Address already in use 5) define an explicit port range for the jvm and start it Doesn't work either -> There is only 1 situation where we were able to start a wrapper on a second zone, using the same ports as on the first zone. Strangely enough this is caused by the fact that the previously allocated jvm port is in a TIME_WAIT state. At least, that's the only explanation we have for this. We also verified the type of zones configured on our testserver and it appears that our server is using "root" zones. Therefore I asked one of our consultants to verify the type of zones used at one of our customers. If they also use "root" zones, it might be that this has something to do with the issue. Unfortunately because of the long weekend it will take at least until monday before we have any news on this. Another interesting piece of info that we found is the following: ----- On a Solaris system with zones installed, the zones can communicate with each other over the network. The zones all have separate bindings, or connections, and the zones can all run their own server daemons. These daemons can listen on the same port numbers without any conflict. The IP stack resolves conflicts by considering the IP addresses for incoming connections. The IP addresses identify the zone. ----- Which would mean that solaris should take care of the port conflicts if they arise. And it seams to do this in case the initial port is in TIME_WAIT, but not in "normal" cases. regards, gds Leif Mortenson-3 wrote: > > Santo, > We created "sparse" zones rather than "root" zones because they share > much of the file system with the underlying OS. Our thinking was that > this would be more likely to show any resource conflicts. > > I agree that there are likely some configuration differences between > your systems and ours. We have been actively attempting to locate the > cause of this problem, but any information that you could provide > would be very helpful in narrowing this down. > > Our tests are being on an x86 server within a virtual machine. We > also have one Sparc server. But that is running Solaris 9 natively > and is being used for our build process. If possible, we would like > to avoid reinstalling that with Solaris 10 as we would need to restore > it later. I would be very surprised if a problem like this would work > differently on x86 vs Sparc however. > > Cheers, > Leif > > On Wed, May 20, 2009 at 5:50 PM, Santo74 > <gds...@de...> wrote: >> >> Leif, >> >> This is very strange, because we haven't come across any solaris 10 >> environment (with zones) >> not having this issue. >> Therefore it indeed looks like some configuration differences (or >> something) >> in comparison with your system. >> However, I still find it strange that other applications (not using the >> service wrapper) are >> not having this issue on the same zones. >> As for the security, it's true that our application runs under a >> dedicated >> user account (and therefore doesn't have full (root) privileges), but the >> IBM Tivoli Policy Server (which I mentioned before) is also running under >> a >> dedicated account (with limited privileges) as far as I know. >> >> This morning I heard that most of the problems with our solaris server >> should be solved later today, which >> means that I can hopefully start testing again next monday (long weekend >> over here). >> >> Thanks, >> >> gds >> >> >> >> Leif Mortenson-3 wrote: >>> >>> Santo, >>> We have done some tests with a server configured with 3 Zones as well >>> as done some more research. >>> >>> It does not appear to be possible to have multiple Zones "share" an IP >>> address. So they will each have their own IP. For that reason, there >>> should be no reason why any of the Zones would ever have any conflict >>> with bound ports. As I understand it. >>> >>> Below you will find the netstat output from 3 Zones on the same >>> machine each running a copy of the Wrapper. Each has an SSH >>> connection to the Zone as well as the two between the Wrapper and its >>> JVM. In all cases, the port number are the same. >>> >>> Because you have had reports from a few of customers, I am sure that >>> "something" is happening. But from the information to date, I am not >>> sure what the cause might be. Is it possible that there are some >>> security configurations setup on one or more of the Zones that would >>> prevent the Wrapper from starting? >>> >>> The Wrapper will loop over its 1000 possible ports looking for the >>> first one that it is able to bind to. If all 1000 fail to bind then >>> it reports that fact to the user. Rather than all 1000 ports >>> actually being already bound, it may be that the OS is refusing to >>> allow the Wrapper to bind to those ports for security reasons? >>> >>> Anyway, here is the netstat output from our 3 Zones. >>> >>> --- >>> jupiter >>> TCP: IPv4 >>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>> State >>> -------------------- -------------------- ----- ------ ----- ------ >>> ----------- >>> jupiter.22 192.168.0.128.59013 18816 0 49232 0 >>> ESTABLISHED >>> localhost.31000 localhost.32000 49152 0 49152 0 >>> ESTABLISHED >>> localhost.32000 localhost.31000 49152 0 49170 0 >>> ESTABLISHED >>> >>> Active UNIX domain sockets >>> Address Type Vnode Conn Local Addr Remote Addr >>> ffffffff889688f8 stream-ord 00000000 >>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>> ffffffff88968ac0 stream-ord 00000000 >>> 00000000 /tmp/.X11-unix/X0 >>> ffffffff87a38728 stream-ord 00000000 >>> 00000000 /tmp/.X11-unix/X0 >>> ffffffff88968730 stream-ord 00000000 >>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>> ffffffff87a38560 stream-ord 00000000 >>> ffffffff89c8bac0 /tmp/.X11-unix/X0 >>> ffffffff87a38008 stream-ord ffffffff8852b780 >>> 00000000 /var/run/zones/kore.console_sock >>> ffffffff88968c88 stream-ord 00000000 >>> 00000000 /tmp/.X11-unix/X0 >>> ffffffff87a38398 stream-ord ffffffff89c8bac0 >>> 00000000 /tmp/.X11-unix/X0 >>> ffffffff87a38ab8 stream-ord ffffffff882b5880 >>> 00000000 /var/run/zones/europa.console_sock >>> ffffffff87a38c80 stream-ord ffffffff87a3d740 >>> 00000000 /var/run/.inetd.uds >>> >>> europa: >>> TCP: IPv4 >>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>> State >>> -------------------- -------------------- ----- ------ ----- ------ >>> ----------- >>> europa.22 192.168.0.128.55040 13440 0 49232 0 >>> ESTABLISHED >>> localhost.31000 localhost.32000 49152 0 49152 0 >>> ESTABLISHED >>> localhost.32000 localhost.31000 49152 0 49170 0 >>> ESTABLISHED >>> >>> Active UNIX domain sockets >>> Address Type Vnode Conn Local Addr Remote Addr >>> ffffffff87a381d0 stream-ord ffffffff87de6740 >>> 00000000 /var/run/.inetd.uds >>> >>> kore: >>> TCP: IPv4 >>> Local Address Remote Address Swind Send-Q Rwind Recv-Q >>> State >>> -------------------- -------------------- ----- ------ ----- ------ >>> ----------- >>> kore.22 192.168.0.128.56248 17664 0 49232 0 >>> ESTABLISHED >>> localhost.31000 localhost.32000 49152 0 49152 0 >>> ESTABLISHED >>> localhost.32000 localhost.31000 49152 0 49170 0 >>> ESTABLISHED >>> >>> Active UNIX domain sockets >>> Address Type Vnode Conn Local Addr Remote Addr >>> ffffffff87a388f0 stream-ord ffffffff8aab4600 >>> 00000000 /var/run/.inetd.uds >>> --- >>> >>> We will keep poking around, but please let me know if you are able to >>> collect any more information. >>> >>> Cheers, >>> Leif >>> >>> >>> On Mon, May 18, 2009 at 8:14 PM, Santo74 >>> <gds...@de...> wrote: >>>> >>>> Leif, >>>> >>>> Regarding the issue of restarting the application after it crashed or >>>> was >>>> forcedly killed I will >>>> keep an eye on it and report back with more info whenever it should >>>> happen >>>> again. >>>> It is indeed not the behaviour that I would expect from the wrapper >>>> especialy now that you confirmed that it isn't allocating the whole >>>> range. >>>> >>>> As you already mentioned correctly I won't be able yet to verify if I >>>> can >>>> start the app on a second zone after having stopped the app on the >>>> first >>>> zone for at least 2 min. >>>> >>>> Concerning your last question: our dev/test system is currently >>>> configured >>>> with 5 zones, all using their own ip address. >>>> I have no idea about the configuration of the solaris systems at our >>>> customers. >>>> >>>> regards, >>>> >>>> gds >>>> >>>> >>>> Leif Mortenson-2 wrote: >>>>> >>>>> Santo, >>>>> We are in the process of setting up a Solaris 10 server to do some >>>>> testing with Zones in house. We have a Solaris 9 server, but out >>>>> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >>>>> server. I will let you know what we found. >>>>> >>>>> As I explained, the Wrapper never actually attempts to allocate all >>>>> 1000 ports unless they are already blocked. If the first instance of >>>>> your application uses ports 32000 and 31000 and that crashes, it is >>>>> possible that the 32000 port will be locked for 2 minutes so the >>>>> second invocation of the JVM would use 32001 and 31000. But the >>>>> other 999 ports would have never been accessed so I can imagine no >>>>> reason why they would be locked. >>>>> >>>>> In your case with Solaris Zones. You say that the Wrapper can not >>>>> start on these second Zone when one is running on the first. Are you >>>>> able to verify that the wrapper on the second Zone works if the first >>>>> had not been running for at least 2 minutes? I am wondering if it is >>>>> a configuration issue. >>>>> >>>>> We will be able to test this shortly ourselves. And it doesn't sound >>>>> like you will be able to test it until your system is back up and >>>>> running. >>>>> >>>>> Sorry for this next question as it may show my lack of knowledge with >>>>> Solaris Zones: >>>>> With your system, are both Zones sharing the same IP address? If so, >>>>> they should not be able to share ports on that IP. In this case >>>>> however, we are only binding to localhost, so it should not matter. >>>>> >>>>> I will post back as soon as we have gotten this tested out. >>>>> >>>>> Cheers, >>>>> Leif > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Wrapper-user mailing list > Wra...@li... > https://lists.sourceforge.net/lists/listinfo/wrapper-user > > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23635418.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Leif M. <lei...@ta...> - 2009-05-20 09:14:57
|
Santo, We created "sparse" zones rather than "root" zones because they share much of the file system with the underlying OS. Our thinking was that this would be more likely to show any resource conflicts. I agree that there are likely some configuration differences between your systems and ours. We have been actively attempting to locate the cause of this problem, but any information that you could provide would be very helpful in narrowing this down. Our tests are being on an x86 server within a virtual machine. We also have one Sparc server. But that is running Solaris 9 natively and is being used for our build process. If possible, we would like to avoid reinstalling that with Solaris 10 as we would need to restore it later. I would be very surprised if a problem like this would work differently on x86 vs Sparc however. Cheers, Leif On Wed, May 20, 2009 at 5:50 PM, Santo74 <gds...@de...> wrote: > > Leif, > > This is very strange, because we haven't come across any solaris 10 > environment (with zones) > not having this issue. > Therefore it indeed looks like some configuration differences (or something) > in comparison with your system. > However, I still find it strange that other applications (not using the > service wrapper) are > not having this issue on the same zones. > As for the security, it's true that our application runs under a dedicated > user account (and therefore doesn't have full (root) privileges), but the > IBM Tivoli Policy Server (which I mentioned before) is also running under a > dedicated account (with limited privileges) as far as I know. > > This morning I heard that most of the problems with our solaris server > should be solved later today, which > means that I can hopefully start testing again next monday (long weekend > over here). > > Thanks, > > gds > > > > Leif Mortenson-3 wrote: >> >> Santo, >> We have done some tests with a server configured with 3 Zones as well >> as done some more research. >> >> It does not appear to be possible to have multiple Zones "share" an IP >> address. So they will each have their own IP. For that reason, there >> should be no reason why any of the Zones would ever have any conflict >> with bound ports. As I understand it. >> >> Below you will find the netstat output from 3 Zones on the same >> machine each running a copy of the Wrapper. Each has an SSH >> connection to the Zone as well as the two between the Wrapper and its >> JVM. In all cases, the port number are the same. >> >> Because you have had reports from a few of customers, I am sure that >> "something" is happening. But from the information to date, I am not >> sure what the cause might be. Is it possible that there are some >> security configurations setup on one or more of the Zones that would >> prevent the Wrapper from starting? >> >> The Wrapper will loop over its 1000 possible ports looking for the >> first one that it is able to bind to. If all 1000 fail to bind then >> it reports that fact to the user. Rather than all 1000 ports >> actually being already bound, it may be that the OS is refusing to >> allow the Wrapper to bind to those ports for security reasons? >> >> Anyway, here is the netstat output from our 3 Zones. >> >> --- >> jupiter >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> jupiter.22 192.168.0.128.59013 18816 0 49232 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> ffffffff889688f8 stream-ord 00000000 >> ffffffff89c8bac0 /tmp/.X11-unix/X0 >> ffffffff88968ac0 stream-ord 00000000 >> 00000000 /tmp/.X11-unix/X0 >> ffffffff87a38728 stream-ord 00000000 >> 00000000 /tmp/.X11-unix/X0 >> ffffffff88968730 stream-ord 00000000 >> ffffffff89c8bac0 /tmp/.X11-unix/X0 >> ffffffff87a38560 stream-ord 00000000 >> ffffffff89c8bac0 /tmp/.X11-unix/X0 >> ffffffff87a38008 stream-ord ffffffff8852b780 >> 00000000 /var/run/zones/kore.console_sock >> ffffffff88968c88 stream-ord 00000000 >> 00000000 /tmp/.X11-unix/X0 >> ffffffff87a38398 stream-ord ffffffff89c8bac0 >> 00000000 /tmp/.X11-unix/X0 >> ffffffff87a38ab8 stream-ord ffffffff882b5880 >> 00000000 /var/run/zones/europa.console_sock >> ffffffff87a38c80 stream-ord ffffffff87a3d740 >> 00000000 /var/run/.inetd.uds >> >> europa: >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> europa.22 192.168.0.128.55040 13440 0 49232 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> ffffffff87a381d0 stream-ord ffffffff87de6740 >> 00000000 /var/run/.inetd.uds >> >> kore: >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> kore.22 192.168.0.128.56248 17664 0 49232 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> ffffffff87a388f0 stream-ord ffffffff8aab4600 >> 00000000 /var/run/.inetd.uds >> --- >> >> We will keep poking around, but please let me know if you are able to >> collect any more information. >> >> Cheers, >> Leif >> >> >> On Mon, May 18, 2009 at 8:14 PM, Santo74 >> <gds...@de...> wrote: >>> >>> Leif, >>> >>> Regarding the issue of restarting the application after it crashed or was >>> forcedly killed I will >>> keep an eye on it and report back with more info whenever it should >>> happen >>> again. >>> It is indeed not the behaviour that I would expect from the wrapper >>> especialy now that you confirmed that it isn't allocating the whole >>> range. >>> >>> As you already mentioned correctly I won't be able yet to verify if I can >>> start the app on a second zone after having stopped the app on the first >>> zone for at least 2 min. >>> >>> Concerning your last question: our dev/test system is currently >>> configured >>> with 5 zones, all using their own ip address. >>> I have no idea about the configuration of the solaris systems at our >>> customers. >>> >>> regards, >>> >>> gds >>> >>> >>> Leif Mortenson-2 wrote: >>>> >>>> Santo, >>>> We are in the process of setting up a Solaris 10 server to do some >>>> testing with Zones in house. We have a Solaris 9 server, but out >>>> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >>>> server. I will let you know what we found. >>>> >>>> As I explained, the Wrapper never actually attempts to allocate all >>>> 1000 ports unless they are already blocked. If the first instance of >>>> your application uses ports 32000 and 31000 and that crashes, it is >>>> possible that the 32000 port will be locked for 2 minutes so the >>>> second invocation of the JVM would use 32001 and 31000. But the >>>> other 999 ports would have never been accessed so I can imagine no >>>> reason why they would be locked. >>>> >>>> In your case with Solaris Zones. You say that the Wrapper can not >>>> start on these second Zone when one is running on the first. Are you >>>> able to verify that the wrapper on the second Zone works if the first >>>> had not been running for at least 2 minutes? I am wondering if it is >>>> a configuration issue. >>>> >>>> We will be able to test this shortly ourselves. And it doesn't sound >>>> like you will be able to test it until your system is back up and >>>> running. >>>> >>>> Sorry for this next question as it may show my lack of knowledge with >>>> Solaris Zones: >>>> With your system, are both Zones sharing the same IP address? If so, >>>> they should not be able to share ports on that IP. In this case >>>> however, we are only binding to localhost, so it should not matter. >>>> >>>> I will post back as soon as we have gotten this tested out. >>>> >>>> Cheers, >>>> Leif |
|
From: Santo74 <gds...@de...> - 2009-05-20 08:51:02
|
Leif, This is very strange, because we haven't come across any solaris 10 environment (with zones) not having this issue. Therefore it indeed looks like some configuration differences (or something) in comparison with your system. However, I still find it strange that other applications (not using the service wrapper) are not having this issue on the same zones. As for the security, it's true that our application runs under a dedicated user account (and therefore doesn't have full (root) privileges), but the IBM Tivoli Policy Server (which I mentioned before) is also running under a dedicated account (with limited privileges) as far as I know. This morning I heard that most of the problems with our solaris server should be solved later today, which means that I can hopefully start testing again next monday (long weekend over here). Thanks, gds Leif Mortenson-3 wrote: > > Santo, > We have done some tests with a server configured with 3 Zones as well > as done some more research. > > It does not appear to be possible to have multiple Zones "share" an IP > address. So they will each have their own IP. For that reason, there > should be no reason why any of the Zones would ever have any conflict > with bound ports. As I understand it. > > Below you will find the netstat output from 3 Zones on the same > machine each running a copy of the Wrapper. Each has an SSH > connection to the Zone as well as the two between the Wrapper and its > JVM. In all cases, the port number are the same. > > Because you have had reports from a few of customers, I am sure that > "something" is happening. But from the information to date, I am not > sure what the cause might be. Is it possible that there are some > security configurations setup on one or more of the Zones that would > prevent the Wrapper from starting? > > The Wrapper will loop over its 1000 possible ports looking for the > first one that it is able to bind to. If all 1000 fail to bind then > it reports that fact to the user. Rather than all 1000 ports > actually being already bound, it may be that the OS is refusing to > allow the Wrapper to bind to those ports for security reasons? > > Anyway, here is the netstat output from our 3 Zones. > > --- > jupiter > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > jupiter.22 192.168.0.128.59013 18816 0 49232 0 > ESTABLISHED > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > ffffffff889688f8 stream-ord 00000000 > ffffffff89c8bac0 /tmp/.X11-unix/X0 > ffffffff88968ac0 stream-ord 00000000 > 00000000 /tmp/.X11-unix/X0 > ffffffff87a38728 stream-ord 00000000 > 00000000 /tmp/.X11-unix/X0 > ffffffff88968730 stream-ord 00000000 > ffffffff89c8bac0 /tmp/.X11-unix/X0 > ffffffff87a38560 stream-ord 00000000 > ffffffff89c8bac0 /tmp/.X11-unix/X0 > ffffffff87a38008 stream-ord ffffffff8852b780 > 00000000 /var/run/zones/kore.console_sock > ffffffff88968c88 stream-ord 00000000 > 00000000 /tmp/.X11-unix/X0 > ffffffff87a38398 stream-ord ffffffff89c8bac0 > 00000000 /tmp/.X11-unix/X0 > ffffffff87a38ab8 stream-ord ffffffff882b5880 > 00000000 /var/run/zones/europa.console_sock > ffffffff87a38c80 stream-ord ffffffff87a3d740 > 00000000 /var/run/.inetd.uds > > europa: > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > europa.22 192.168.0.128.55040 13440 0 49232 0 > ESTABLISHED > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > ffffffff87a381d0 stream-ord ffffffff87de6740 > 00000000 /var/run/.inetd.uds > > kore: > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > kore.22 192.168.0.128.56248 17664 0 49232 0 > ESTABLISHED > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > ffffffff87a388f0 stream-ord ffffffff8aab4600 > 00000000 /var/run/.inetd.uds > --- > > We will keep poking around, but please let me know if you are able to > collect any more information. > > Cheers, > Leif > > > On Mon, May 18, 2009 at 8:14 PM, Santo74 > <gds...@de...> wrote: >> >> Leif, >> >> Regarding the issue of restarting the application after it crashed or was >> forcedly killed I will >> keep an eye on it and report back with more info whenever it should >> happen >> again. >> It is indeed not the behaviour that I would expect from the wrapper >> especialy now that you confirmed that it isn't allocating the whole >> range. >> >> As you already mentioned correctly I won't be able yet to verify if I can >> start the app on a second zone after having stopped the app on the first >> zone for at least 2 min. >> >> Concerning your last question: our dev/test system is currently >> configured >> with 5 zones, all using their own ip address. >> I have no idea about the configuration of the solaris systems at our >> customers. >> >> regards, >> >> gds >> >> >> Leif Mortenson-2 wrote: >>> >>> Santo, >>> We are in the process of setting up a Solaris 10 server to do some >>> testing with Zones in house. We have a Solaris 9 server, but out >>> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >>> server. I will let you know what we found. >>> >>> As I explained, the Wrapper never actually attempts to allocate all >>> 1000 ports unless they are already blocked. If the first instance of >>> your application uses ports 32000 and 31000 and that crashes, it is >>> possible that the 32000 port will be locked for 2 minutes so the >>> second invocation of the JVM would use 32001 and 31000. But the >>> other 999 ports would have never been accessed so I can imagine no >>> reason why they would be locked. >>> >>> In your case with Solaris Zones. You say that the Wrapper can not >>> start on these second Zone when one is running on the first. Are you >>> able to verify that the wrapper on the second Zone works if the first >>> had not been running for at least 2 minutes? I am wondering if it is >>> a configuration issue. >>> >>> We will be able to test this shortly ourselves. And it doesn't sound >>> like you will be able to test it until your system is back up and >>> running. >>> >>> Sorry for this next question as it may show my lack of knowledge with >>> Solaris Zones: >>> With your system, are both Zones sharing the same IP address? If so, >>> they should not be able to share ports on that IP. In this case >>> however, we are only binding to localhost, so it should not matter. >>> >>> I will post back as soon as we have gotten this tested out. >>> >>> Cheers, >>> Leif > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Wrapper-user mailing list > Wra...@li... > https://lists.sourceforge.net/lists/listinfo/wrapper-user > > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23631453.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Leif M. <lei...@ta...> - 2009-05-20 06:41:57
|
Santo, We have done some tests with a server configured with 3 Zones as well as done some more research. It does not appear to be possible to have multiple Zones "share" an IP address. So they will each have their own IP. For that reason, there should be no reason why any of the Zones would ever have any conflict with bound ports. As I understand it. Below you will find the netstat output from 3 Zones on the same machine each running a copy of the Wrapper. Each has an SSH connection to the Zone as well as the two between the Wrapper and its JVM. In all cases, the port number are the same. Because you have had reports from a few of customers, I am sure that "something" is happening. But from the information to date, I am not sure what the cause might be. Is it possible that there are some security configurations setup on one or more of the Zones that would prevent the Wrapper from starting? The Wrapper will loop over its 1000 possible ports looking for the first one that it is able to bind to. If all 1000 fail to bind then it reports that fact to the user. Rather than all 1000 ports actually being already bound, it may be that the OS is refusing to allow the Wrapper to bind to those ports for security reasons? Anyway, here is the netstat output from our 3 Zones. --- jupiter TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- jupiter.22 192.168.0.128.59013 18816 0 49232 0 ESTABLISHED localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr ffffffff889688f8 stream-ord 00000000 ffffffff89c8bac0 /tmp/.X11-unix/X0 ffffffff88968ac0 stream-ord 00000000 00000000 /tmp/.X11-unix/X0 ffffffff87a38728 stream-ord 00000000 00000000 /tmp/.X11-unix/X0 ffffffff88968730 stream-ord 00000000 ffffffff89c8bac0 /tmp/.X11-unix/X0 ffffffff87a38560 stream-ord 00000000 ffffffff89c8bac0 /tmp/.X11-unix/X0 ffffffff87a38008 stream-ord ffffffff8852b780 00000000 /var/run/zones/kore.console_sock ffffffff88968c88 stream-ord 00000000 00000000 /tmp/.X11-unix/X0 ffffffff87a38398 stream-ord ffffffff89c8bac0 00000000 /tmp/.X11-unix/X0 ffffffff87a38ab8 stream-ord ffffffff882b5880 00000000 /var/run/zones/europa.console_sock ffffffff87a38c80 stream-ord ffffffff87a3d740 00000000 /var/run/.inetd.uds europa: TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- europa.22 192.168.0.128.55040 13440 0 49232 0 ESTABLISHED localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr ffffffff87a381d0 stream-ord ffffffff87de6740 00000000 /var/run/.inetd.uds kore: TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- kore.22 192.168.0.128.56248 17664 0 49232 0 ESTABLISHED localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr ffffffff87a388f0 stream-ord ffffffff8aab4600 00000000 /var/run/.inetd.uds --- We will keep poking around, but please let me know if you are able to collect any more information. Cheers, Leif On Mon, May 18, 2009 at 8:14 PM, Santo74 <gds...@de...> wrote: > > Leif, > > Regarding the issue of restarting the application after it crashed or was > forcedly killed I will > keep an eye on it and report back with more info whenever it should happen > again. > It is indeed not the behaviour that I would expect from the wrapper > especialy now that you confirmed that it isn't allocating the whole range. > > As you already mentioned correctly I won't be able yet to verify if I can > start the app on a second zone after having stopped the app on the first > zone for at least 2 min. > > Concerning your last question: our dev/test system is currently configured > with 5 zones, all using their own ip address. > I have no idea about the configuration of the solaris systems at our > customers. > > regards, > > gds > > > Leif Mortenson-2 wrote: >> >> Santo, >> We are in the process of setting up a Solaris 10 server to do some >> testing with Zones in house. We have a Solaris 9 server, but out >> Solaris 10 testing has been done IN a zone on Sun's EZqual loaner >> server. I will let you know what we found. >> >> As I explained, the Wrapper never actually attempts to allocate all >> 1000 ports unless they are already blocked. If the first instance of >> your application uses ports 32000 and 31000 and that crashes, it is >> possible that the 32000 port will be locked for 2 minutes so the >> second invocation of the JVM would use 32001 and 31000. But the >> other 999 ports would have never been accessed so I can imagine no >> reason why they would be locked. >> >> In your case with Solaris Zones. You say that the Wrapper can not >> start on these second Zone when one is running on the first. Are you >> able to verify that the wrapper on the second Zone works if the first >> had not been running for at least 2 minutes? I am wondering if it is >> a configuration issue. >> >> We will be able to test this shortly ourselves. And it doesn't sound >> like you will be able to test it until your system is back up and >> running. >> >> Sorry for this next question as it may show my lack of knowledge with >> Solaris Zones: >> With your system, are both Zones sharing the same IP address? If so, >> they should not be able to share ports on that IP. In this case >> however, we are only binding to localhost, so it should not matter. >> >> I will post back as soon as we have gotten this tested out. >> >> Cheers, >> Leif |
|
From: Santo74 <gds...@de...> - 2009-05-18 11:14:45
|
Leif, Regarding the issue of restarting the application after it crashed or was forcedly killed I will keep an eye on it and report back with more info whenever it should happen again. It is indeed not the behaviour that I would expect from the wrapper especialy now that you confirmed that it isn't allocating the whole range. As you already mentioned correctly I won't be able yet to verify if I can start the app on a second zone after having stopped the app on the first zone for at least 2 min. Concerning your last question: our dev/test system is currently configured with 5 zones, all using their own ip address. I have no idea about the configuration of the solaris systems at our customers. regards, gds Leif Mortenson-2 wrote: > > Santo, > We are in the process of setting up a Solaris 10 server to do some > testing with Zones in house. We have a Solaris 9 server, but out > Solaris 10 testing has been done IN a zone on Sun's EZqual loaner > server. I will let you know what we found. > > As I explained, the Wrapper never actually attempts to allocate all > 1000 ports unless they are already blocked. If the first instance of > your application uses ports 32000 and 31000 and that crashes, it is > possible that the 32000 port will be locked for 2 minutes so the > second invocation of the JVM would use 32001 and 31000. But the > other 999 ports would have never been accessed so I can imagine no > reason why they would be locked. > > In your case with Solaris Zones. You say that the Wrapper can not > start on these second Zone when one is running on the first. Are you > able to verify that the wrapper on the second Zone works if the first > had not been running for at least 2 minutes? I am wondering if it is > a configuration issue. > > We will be able to test this shortly ourselves. And it doesn't sound > like you will be able to test it until your system is back up and > running. > > Sorry for this next question as it may show my lack of knowledge with > Solaris Zones: > With your system, are both Zones sharing the same IP address? If so, > they should not be able to share ports on that IP. In this case > however, we are only binding to localhost, so it should not matter. > > I will post back as soon as we have gotten this tested out. > > Cheers, > Leif > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23595451.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Leif M. <le...@ta...> - 2009-05-18 10:32:09
|
Santo, We are in the process of setting up a Solaris 10 server to do some testing with Zones in house. We have a Solaris 9 server, but out Solaris 10 testing has been done IN a zone on Sun's EZqual loaner server. I will let you know what we found. As I explained, the Wrapper never actually attempts to allocate all 1000 ports unless they are already blocked. If the first instance of your application uses ports 32000 and 31000 and that crashes, it is possible that the 32000 port will be locked for 2 minutes so the second invocation of the JVM would use 32001 and 31000. But the other 999 ports would have never been accessed so I can imagine no reason why they would be locked. In your case with Solaris Zones. You say that the Wrapper can not start on these second Zone when one is running on the first. Are you able to verify that the wrapper on the second Zone works if the first had not been running for at least 2 minutes? I am wondering if it is a configuration issue. We will be able to test this shortly ourselves. And it doesn't sound like you will be able to test it until your system is back up and running. Sorry for this next question as it may show my lack of knowledge with Solaris Zones: With your system, are both Zones sharing the same IP address? If so, they should not be able to share ports on that IP. In this case however, we are only binding to localhost, so it should not matter. I will post back as soon as we have gotten this tested out. Cheers, Leif On Mon, May 18, 2009 at 5:53 PM, Santo74 <gds...@de...> wrote: > > Hi Leif, > > thanks for the quick answer. > > Actually the issue was reported in our Mantis system by several of our > consultants and what I understood from their reports > was that the port range was reserved on all the different platforms our > product runs on. > But apparently their is no real evidence of it and therefore this isn't > necessarity true. > The reason why it was assumed that the whole range was reserved / allocated > is because they were never able > to restart our application with the same port range after a crash or forced > stop > This happended multiple times (for several different reasons, but that's not > important here) and each time > they were forced to use a port range that didn't overlap with the default > range (i.e. 31000-32000) > > On solaris on the other hand (and that's a situation that I tested and > verified myself) it's very clear > that a second instance of our application can't start with the default port > range on any other zone on that same server. > > I'm not sure what the result of netstat was on such a solaris zone and > unfortunately I can't check it at the moment > because we are having issues with the raid controller of our solaris system > which prevents it from booting :-( > > As soon as we get it up and running again and it would be of any help to you > I would be glad to run a netstat on one of the zones and post the output of > it here. > > regards, > > gds > > > > > Leif Mortenson-3 wrote: >> >> Santo, >> Sorry for this trouble with the Java Service Wrapper. We have >> designed it to work automatically when more than one copy of the >> Wrapper is run on the same machine. It does not intentionally >> allocate all 1000 ports. Rather it starts by attempting to allocate >> the first port, then moving on to the next if that first one is >> already allocated. Once it finds an open port it should never even >> attempt to access the rest of the range. >> >> How exactly are you determining that all 1000 ports are being >> reserved? allocated? when I run net stat on our test system with one >> copy of the Wrapper running I get this: >> --- >> # netstat >> >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> solx86.ssh 10.24.115.41.63503 49640 47 49640 0 >> ESTABLISHED >> localhost.63651 localhost.63650 49152 0 49152 0 >> TIME_WAIT >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 >> /var/run/.inetd.uds >> --- >> >> Leaving the first wrapper up, I ran a couple other tests and then >> started a second wrapper. In that state here is what I get from >> netstat: >> --- >> # netstat >> >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> localhost.63661 localhost.63660 49152 0 49152 0 >> TIME_WAIT >> localhost.31001 localhost.32001 49170 0 49152 0 >> TIME_WAIT >> localhost.63667 localhost.63666 49152 0 49152 0 >> TIME_WAIT >> localhost.31002 localhost.32001 49170 0 49152 0 >> TIME_WAIT >> localhost.63670 localhost.63669 49152 0 49152 0 >> TIME_WAIT >> localhost.31003 localhost.32001 49152 0 49152 0 >> ESTABLISHED >> localhost.32001 localhost.31003 49152 0 49170 0 >> ESTABLISHED >> solx86.ssh 10.24.115.41.63503 49640 47 49640 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 >> /var/run/.inetd.uds >> --- >> >> The first Wrapper is using the socket 31000 -> 32000 (JVM to Wrapper) >> and the reverse of the socket. >> The second Wrapper is using the socket 31003 -> 32001 (JVM to Wrapper) >> and the reverse of the socket. >> Neither of those are ranges, they each use 2 halves of the socket as >> expected. >> The TIME_WAIT ports are from the other tests I mentioned and will >> remain in that state for 2 minutes until the system decides that no >> more data could come in and closes the ports. netstat then reports >> this: >> --- >> # netstat >> >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> localhost.31003 localhost.32001 49152 0 49152 0 >> ESTABLISHED >> localhost.32001 localhost.31003 49152 0 49170 0 >> ESTABLISHED >> solx86.ssh 10.24.115.41.63503 49640 47 49640 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49152 0 49152 0 >> ESTABLISHED >> localhost.32000 localhost.31000 49152 0 49170 0 >> ESTABLISHED >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 >> /var/run/.inetd.uds >> --- >> >> This is all worked as I expected but is also within a single Zone. >> >> When I stop the two wrappers and immediately run netstat again, I see: >> --- >> # netstat >> >> TCP: IPv4 >> Local Address Remote Address Swind Send-Q Rwind Recv-Q >> State >> -------------------- -------------------- ----- ------ ----- ------ >> ----------- >> localhost.31003 localhost.32001 49170 0 49152 0 >> TIME_WAIT >> solx86.ssh 10.24.115.41.63503 49640 47 49640 0 >> ESTABLISHED >> localhost.31000 localhost.32000 49170 0 49152 0 >> TIME_WAIT >> >> Active UNIX domain sockets >> Address Type Vnode Conn Local Addr Remote Addr >> fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 >> /var/run/.inetd.uds >> --- >> >> So the JVM to Wrapper half of the socket remains in a locked state for >> the TIME_WAIT period. This is expected because the JVM was the >> connecting process and the Wrapper was the listener. >> >> I admit that I have little experience with Solaris Zones but will >> definitely look into this further. Any additional information you >> could provide would be helpful in getting this resolved. >> >> Cheers, >> Leif >> >> On Sat, May 16, 2009 at 4:10 AM, Santo74 >> <gds...@de...> wrote: >>> >>> First of all I want to apologise for waking up an old thread, but >>> actually >>> the problem described in this thread still applies. >>> I say this because I am experiencing exactly the same behaviour as >>> ahmadk72 >>> with our own java application, which uses the java service wrapper. >>> >>> These are the remarkable things that I experienced: >>> >>> 1) the service wrapper is reserving all ports between 31000 and 32000 by >>> default >>> -> I would expect that it looks for the first free port in this range and >>> allocate / reserve that one, but apparently it reserves the whole range >>> !! >>> >>> 2) On most systems it's not a huge problem in that this port range is >>> probably available (most of the time) and therefore doesn't cause much >>> trouble. >>> However, a lot of companies don't like it that a single application is >>> occupying a range of 1000 ports >>> >>> 3) On Solaris 10 zones it's even worse because the port range appears to >>> be >>> in use on ALL zones as soon as ONE zone is running a service wrapper >>> based >>> application >>> (cfr the explanation of ahmadk72 below) >>> >>> The strangest part is that we can run multiple instances of other >>> applications that use a particular port on multiple zones without any >>> trouble at all. >>> E.g. a solaris host with 5 zones, all 5 running an IBM Tivoli Policy >>> Server >>> instance using the same ports on all those zones is not a problem. >>> So why can other applications allocate a particular port for that >>> particular >>> zone (i.e. independant), >>> while the service wrapper is allocating (reserving) its ports on all >>> zones >>> at once (i.e. global) ?? >>> >>> 4) I know it's possible to make the port range smaller AND letting each >>> server or zone use another port range, >>> but this makes it very hard to package an application for deployment >>> >>> We are using java service wrapper v3.2.3 >>> Can someone please look into this and take the necessary actions where >>> required ? >>> >>> Thanks in advance, >>> >>> gds >>> >>> >>> ahmadk72 wrote: >>>> >>>> I have a problem that is perplexed me to no end. Even our UNIX admin is >>>> stumped, so this mailing list is a last resort. >>>> >>>> We have a third-party application that uses the Java Service Wrapper >>>> (v3.2.1). The application is installed on two different Zones in >>>> Solaris >>>> 10. One zone is called rhdam-dev and the other is called rhdam-tst. >>>> >>>> If i startup the rhdam-dev (DEV box) application, the Java service >>>> wrapper >>>> uses ports 31000 and 32000 for communicating to and listening from the >>>> JVM. Everything works fine, and I have no problems running the >>>> application >>>> as expected. >>>> >>>> Then recently we installed the application on the dam-tst (TEST box) >>>> application on another Solaris zone. When the wrapper starts up, I see >>>> the following error (logging output is set to DEBUG level) in the >>>> attached >>>> log file. >>>> >>>> From what I have been able to deciper, it is complaining about port >>>> 32000 >>>> already being in use. However, the port is not in use on the rhdam-tst >>>> zone. I can run a netstat -an command and see that there is nothing >>>> running on port 32000. >>>> >>>> The really weird part is that is I stop the wrapper service on the >>>> rhdam-dev zone, and try to startup the rhdam-tst instance, then the >>>> wrapper service starts successfully. >>>> >>>> For now I have been able to start both up by changing adding the >>>> wrapper.port.min and wrappper.port.max settings so the ports don't >>>> conflict between rhdam-dev and rhdam-tst. >>>> >>>> However, I need to know why this is happening. Has anyone seen this >>>> behavior? The ports are suppose to be independent on Solaris zone. Why >>>> is the Java Service wrapper socket complaining about the port being used >>>> in another zone. >>>> >>>> If anyone can help me solve this mystery that would be just great. >>>> >>>> Thanks >>>> >>>> Kashif http://www.nabble.com/file/p12904287/artesia-service-wrapper.log >>>> artesia-service-wrapper.log |
|
From: Santo74 <gds...@de...> - 2009-05-18 08:53:49
|
Hi Leif, thanks for the quick answer. Actually the issue was reported in our Mantis system by several of our consultants and what I understood from their reports was that the port range was reserved on all the different platforms our product runs on. But apparently their is no real evidence of it and therefore this isn't necessarity true. The reason why it was assumed that the whole range was reserved / allocated is because they were never able to restart our application with the same port range after a crash or forced stop This happended multiple times (for several different reasons, but that's not important here) and each time they were forced to use a port range that didn't overlap with the default range (i.e. 31000-32000) On solaris on the other hand (and that's a situation that I tested and verified myself) it's very clear that a second instance of our application can't start with the default port range on any other zone on that same server. I'm not sure what the result of netstat was on such a solaris zone and unfortunately I can't check it at the moment because we are having issues with the raid controller of our solaris system which prevents it from booting :-( As soon as we get it up and running again and it would be of any help to you I would be glad to run a netstat on one of the zones and post the output of it here. regards, gds Leif Mortenson-3 wrote: > > Santo, > Sorry for this trouble with the Java Service Wrapper. We have > designed it to work automatically when more than one copy of the > Wrapper is run on the same machine. It does not intentionally > allocate all 1000 ports. Rather it starts by attempting to allocate > the first port, then moving on to the next if that first one is > already allocated. Once it finds an open port it should never even > attempt to access the rest of the range. > > How exactly are you determining that all 1000 ports are being > reserved? allocated? when I run net stat on our test system with one > copy of the Wrapper running I get this: > --- > # netstat > > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > solx86.ssh 10.24.115.41.63503 49640 47 49640 0 > ESTABLISHED > localhost.63651 localhost.63650 49152 0 49152 0 > TIME_WAIT > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 > /var/run/.inetd.uds > --- > > Leaving the first wrapper up, I ran a couple other tests and then > started a second wrapper. In that state here is what I get from > netstat: > --- > # netstat > > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > localhost.63661 localhost.63660 49152 0 49152 0 > TIME_WAIT > localhost.31001 localhost.32001 49170 0 49152 0 > TIME_WAIT > localhost.63667 localhost.63666 49152 0 49152 0 > TIME_WAIT > localhost.31002 localhost.32001 49170 0 49152 0 > TIME_WAIT > localhost.63670 localhost.63669 49152 0 49152 0 > TIME_WAIT > localhost.31003 localhost.32001 49152 0 49152 0 > ESTABLISHED > localhost.32001 localhost.31003 49152 0 49170 0 > ESTABLISHED > solx86.ssh 10.24.115.41.63503 49640 47 49640 0 > ESTABLISHED > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 > /var/run/.inetd.uds > --- > > The first Wrapper is using the socket 31000 -> 32000 (JVM to Wrapper) > and the reverse of the socket. > The second Wrapper is using the socket 31003 -> 32001 (JVM to Wrapper) > and the reverse of the socket. > Neither of those are ranges, they each use 2 halves of the socket as > expected. > The TIME_WAIT ports are from the other tests I mentioned and will > remain in that state for 2 minutes until the system decides that no > more data could come in and closes the ports. netstat then reports > this: > --- > # netstat > > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > localhost.31003 localhost.32001 49152 0 49152 0 > ESTABLISHED > localhost.32001 localhost.31003 49152 0 49170 0 > ESTABLISHED > solx86.ssh 10.24.115.41.63503 49640 47 49640 0 > ESTABLISHED > localhost.31000 localhost.32000 49152 0 49152 0 > ESTABLISHED > localhost.32000 localhost.31000 49152 0 49170 0 > ESTABLISHED > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 > /var/run/.inetd.uds > --- > > This is all worked as I expected but is also within a single Zone. > > When I stop the two wrappers and immediately run netstat again, I see: > --- > # netstat > > TCP: IPv4 > Local Address Remote Address Swind Send-Q Rwind Recv-Q > State > -------------------- -------------------- ----- ------ ----- ------ > ----------- > localhost.31003 localhost.32001 49170 0 49152 0 > TIME_WAIT > solx86.ssh 10.24.115.41.63503 49640 47 49640 0 > ESTABLISHED > localhost.31000 localhost.32000 49170 0 49152 0 > TIME_WAIT > > Active UNIX domain sockets > Address Type Vnode Conn Local Addr Remote Addr > fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 > /var/run/.inetd.uds > --- > > So the JVM to Wrapper half of the socket remains in a locked state for > the TIME_WAIT period. This is expected because the JVM was the > connecting process and the Wrapper was the listener. > > I admit that I have little experience with Solaris Zones but will > definitely look into this further. Any additional information you > could provide would be helpful in getting this resolved. > > Cheers, > Leif > > On Sat, May 16, 2009 at 4:10 AM, Santo74 > <gds...@de...> wrote: >> >> First of all I want to apologise for waking up an old thread, but >> actually >> the problem described in this thread still applies. >> I say this because I am experiencing exactly the same behaviour as >> ahmadk72 >> with our own java application, which uses the java service wrapper. >> >> These are the remarkable things that I experienced: >> >> 1) the service wrapper is reserving all ports between 31000 and 32000 by >> default >> -> I would expect that it looks for the first free port in this range and >> allocate / reserve that one, but apparently it reserves the whole range >> !! >> >> 2) On most systems it's not a huge problem in that this port range is >> probably available (most of the time) and therefore doesn't cause much >> trouble. >> However, a lot of companies don't like it that a single application is >> occupying a range of 1000 ports >> >> 3) On Solaris 10 zones it's even worse because the port range appears to >> be >> in use on ALL zones as soon as ONE zone is running a service wrapper >> based >> application >> (cfr the explanation of ahmadk72 below) >> >> The strangest part is that we can run multiple instances of other >> applications that use a particular port on multiple zones without any >> trouble at all. >> E.g. a solaris host with 5 zones, all 5 running an IBM Tivoli Policy >> Server >> instance using the same ports on all those zones is not a problem. >> So why can other applications allocate a particular port for that >> particular >> zone (i.e. independant), >> while the service wrapper is allocating (reserving) its ports on all >> zones >> at once (i.e. global) ?? >> >> 4) I know it's possible to make the port range smaller AND letting each >> server or zone use another port range, >> but this makes it very hard to package an application for deployment >> >> We are using java service wrapper v3.2.3 >> Can someone please look into this and take the necessary actions where >> required ? >> >> Thanks in advance, >> >> gds >> >> >> ahmadk72 wrote: >>> >>> I have a problem that is perplexed me to no end. Even our UNIX admin is >>> stumped, so this mailing list is a last resort. >>> >>> We have a third-party application that uses the Java Service Wrapper >>> (v3.2.1). The application is installed on two different Zones in >>> Solaris >>> 10. One zone is called rhdam-dev and the other is called rhdam-tst. >>> >>> If i startup the rhdam-dev (DEV box) application, the Java service >>> wrapper >>> uses ports 31000 and 32000 for communicating to and listening from the >>> JVM. Everything works fine, and I have no problems running the >>> application >>> as expected. >>> >>> Then recently we installed the application on the dam-tst (TEST box) >>> application on another Solaris zone. When the wrapper starts up, I see >>> the following error (logging output is set to DEBUG level) in the >>> attached >>> log file. >>> >>> From what I have been able to deciper, it is complaining about port >>> 32000 >>> already being in use. However, the port is not in use on the rhdam-tst >>> zone. I can run a netstat -an command and see that there is nothing >>> running on port 32000. >>> >>> The really weird part is that is I stop the wrapper service on the >>> rhdam-dev zone, and try to startup the rhdam-tst instance, then the >>> wrapper service starts successfully. >>> >>> For now I have been able to start both up by changing adding the >>> wrapper.port.min and wrappper.port.max settings so the ports don't >>> conflict between rhdam-dev and rhdam-tst. >>> >>> However, I need to know why this is happening. Has anyone seen this >>> behavior? The ports are suppose to be independent on Solaris zone. Why >>> is the Java Service wrapper socket complaining about the port being used >>> in another zone. >>> >>> If anyone can help me solve this mystery that would be just great. >>> >>> Thanks >>> >>> Kashif http://www.nabble.com/file/p12904287/artesia-service-wrapper.log >>> artesia-service-wrapper.log > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Wrapper-user mailing list > Wra...@li... > https://lists.sourceforge.net/lists/listinfo/wrapper-user > > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23593563.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Leif M. <lei...@ta...> - 2009-05-16 04:25:27
|
Santo, Sorry for this trouble with the Java Service Wrapper. We have designed it to work automatically when more than one copy of the Wrapper is run on the same machine. It does not intentionally allocate all 1000 ports. Rather it starts by attempting to allocate the first port, then moving on to the next if that first one is already allocated. Once it finds an open port it should never even attempt to access the rest of the range. How exactly are you determining that all 1000 ports are being reserved? allocated? when I run net stat on our test system with one copy of the Wrapper running I get this: --- # netstat TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- solx86.ssh 10.24.115.41.63503 49640 47 49640 0 ESTABLISHED localhost.63651 localhost.63650 49152 0 49152 0 TIME_WAIT localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 /var/run/.inetd.uds --- Leaving the first wrapper up, I ran a couple other tests and then started a second wrapper. In that state here is what I get from netstat: --- # netstat TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- localhost.63661 localhost.63660 49152 0 49152 0 TIME_WAIT localhost.31001 localhost.32001 49170 0 49152 0 TIME_WAIT localhost.63667 localhost.63666 49152 0 49152 0 TIME_WAIT localhost.31002 localhost.32001 49170 0 49152 0 TIME_WAIT localhost.63670 localhost.63669 49152 0 49152 0 TIME_WAIT localhost.31003 localhost.32001 49152 0 49152 0 ESTABLISHED localhost.32001 localhost.31003 49152 0 49170 0 ESTABLISHED solx86.ssh 10.24.115.41.63503 49640 47 49640 0 ESTABLISHED localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 /var/run/.inetd.uds --- The first Wrapper is using the socket 31000 -> 32000 (JVM to Wrapper) and the reverse of the socket. The second Wrapper is using the socket 31003 -> 32001 (JVM to Wrapper) and the reverse of the socket. Neither of those are ranges, they each use 2 halves of the socket as expected. The TIME_WAIT ports are from the other tests I mentioned and will remain in that state for 2 minutes until the system decides that no more data could come in and closes the ports. netstat then reports this: --- # netstat TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- localhost.31003 localhost.32001 49152 0 49152 0 ESTABLISHED localhost.32001 localhost.31003 49152 0 49170 0 ESTABLISHED solx86.ssh 10.24.115.41.63503 49640 47 49640 0 ESTABLISHED localhost.31000 localhost.32000 49152 0 49152 0 ESTABLISHED localhost.32000 localhost.31000 49152 0 49170 0 ESTABLISHED Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 /var/run/.inetd.uds --- This is all worked as I expected but is also within a single Zone. When I stop the two wrappers and immediately run netstat again, I see: --- # netstat TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----------- localhost.31003 localhost.32001 49170 0 49152 0 TIME_WAIT solx86.ssh 10.24.115.41.63503 49640 47 49640 0 ESTABLISHED localhost.31000 localhost.32000 49170 0 49152 0 TIME_WAIT Active UNIX domain sockets Address Type Vnode Conn Local Addr Remote Addr fffffe853d5cdac0 stream-ord fffffe855a118a80 00000000 /var/run/.inetd.uds --- So the JVM to Wrapper half of the socket remains in a locked state for the TIME_WAIT period. This is expected because the JVM was the connecting process and the Wrapper was the listener. I admit that I have little experience with Solaris Zones but will definitely look into this further. Any additional information you could provide would be helpful in getting this resolved. Cheers, Leif On Sat, May 16, 2009 at 4:10 AM, Santo74 <gds...@de...> wrote: > > First of all I want to apologise for waking up an old thread, but actually > the problem described in this thread still applies. > I say this because I am experiencing exactly the same behaviour as ahmadk72 > with our own java application, which uses the java service wrapper. > > These are the remarkable things that I experienced: > > 1) the service wrapper is reserving all ports between 31000 and 32000 by > default > -> I would expect that it looks for the first free port in this range and > allocate / reserve that one, but apparently it reserves the whole range !! > > 2) On most systems it's not a huge problem in that this port range is > probably available (most of the time) and therefore doesn't cause much > trouble. > However, a lot of companies don't like it that a single application is > occupying a range of 1000 ports > > 3) On Solaris 10 zones it's even worse because the port range appears to be > in use on ALL zones as soon as ONE zone is running a service wrapper based > application > (cfr the explanation of ahmadk72 below) > > The strangest part is that we can run multiple instances of other > applications that use a particular port on multiple zones without any > trouble at all. > E.g. a solaris host with 5 zones, all 5 running an IBM Tivoli Policy Server > instance using the same ports on all those zones is not a problem. > So why can other applications allocate a particular port for that particular > zone (i.e. independant), > while the service wrapper is allocating (reserving) its ports on all zones > at once (i.e. global) ?? > > 4) I know it's possible to make the port range smaller AND letting each > server or zone use another port range, > but this makes it very hard to package an application for deployment > > We are using java service wrapper v3.2.3 > Can someone please look into this and take the necessary actions where > required ? > > Thanks in advance, > > gds > > > ahmadk72 wrote: >> >> I have a problem that is perplexed me to no end. Even our UNIX admin is >> stumped, so this mailing list is a last resort. >> >> We have a third-party application that uses the Java Service Wrapper >> (v3.2.1). The application is installed on two different Zones in Solaris >> 10. One zone is called rhdam-dev and the other is called rhdam-tst. >> >> If i startup the rhdam-dev (DEV box) application, the Java service wrapper >> uses ports 31000 and 32000 for communicating to and listening from the >> JVM. Everything works fine, and I have no problems running the application >> as expected. >> >> Then recently we installed the application on the dam-tst (TEST box) >> application on another Solaris zone. When the wrapper starts up, I see >> the following error (logging output is set to DEBUG level) in the attached >> log file. >> >> From what I have been able to deciper, it is complaining about port 32000 >> already being in use. However, the port is not in use on the rhdam-tst >> zone. I can run a netstat -an command and see that there is nothing >> running on port 32000. >> >> The really weird part is that is I stop the wrapper service on the >> rhdam-dev zone, and try to startup the rhdam-tst instance, then the >> wrapper service starts successfully. >> >> For now I have been able to start both up by changing adding the >> wrapper.port.min and wrappper.port.max settings so the ports don't >> conflict between rhdam-dev and rhdam-tst. >> >> However, I need to know why this is happening. Has anyone seen this >> behavior? The ports are suppose to be independent on Solaris zone. Why >> is the Java Service wrapper socket complaining about the port being used >> in another zone. >> >> If anyone can help me solve this mystery that would be just great. >> >> Thanks >> >> Kashif http://www.nabble.com/file/p12904287/artesia-service-wrapper.log >> artesia-service-wrapper.log |
|
From: Santo74 <gds...@de...> - 2009-05-15 19:10:41
|
First of all I want to apologise for waking up an old thread, but actually the problem described in this thread still applies. I say this because I am experiencing exactly the same behaviour as ahmadk72 with our own java application, which uses the java service wrapper. These are the remarkable things that I experienced: 1) the service wrapper is reserving all ports between 31000 and 32000 by default -> I would expect that it looks for the first free port in this range and allocate / reserve that one, but apparently it reserves the whole range !! 2) On most systems it's not a huge problem in that this port range is probably available (most of the time) and therefore doesn't cause much trouble. However, a lot of companies don't like it that a single application is occupying a range of 1000 ports 3) On Solaris 10 zones it's even worse because the port range appears to be in use on ALL zones as soon as ONE zone is running a service wrapper based application (cfr the explanation of ahmadk72 below) The strangest part is that we can run multiple instances of other applications that use a particular port on multiple zones without any trouble at all. E.g. a solaris host with 5 zones, all 5 running an IBM Tivoli Policy Server instance using the same ports on all those zones is not a problem. So why can other applications allocate a particular port for that particular zone (i.e. independant), while the service wrapper is allocating (reserving) its ports on all zones at once (i.e. global) ?? 4) I know it's possible to make the port range smaller AND letting each server or zone use another port range, but this makes it very hard to package an application for deployment We are using java service wrapper v3.2.3 Can someone please look into this and take the necessary actions where required ? Thanks in advance, gds ahmadk72 wrote: > > I have a problem that is perplexed me to no end. Even our UNIX admin is > stumped, so this mailing list is a last resort. > > We have a third-party application that uses the Java Service Wrapper > (v3.2.1). The application is installed on two different Zones in Solaris > 10. One zone is called rhdam-dev and the other is called rhdam-tst. > > If i startup the rhdam-dev (DEV box) application, the Java service wrapper > uses ports 31000 and 32000 for communicating to and listening from the > JVM. Everything works fine, and I have no problems running the application > as expected. > > Then recently we installed the application on the dam-tst (TEST box) > application on another Solaris zone. When the wrapper starts up, I see > the following error (logging output is set to DEBUG level) in the attached > log file. > > From what I have been able to deciper, it is complaining about port 32000 > already being in use. However, the port is not in use on the rhdam-tst > zone. I can run a netstat -an command and see that there is nothing > running on port 32000. > > The really weird part is that is I stop the wrapper service on the > rhdam-dev zone, and try to startup the rhdam-tst instance, then the > wrapper service starts successfully. > > For now I have been able to start both up by changing adding the > wrapper.port.min and wrappper.port.max settings so the ports don't > conflict between rhdam-dev and rhdam-tst. > > However, I need to know why this is happening. Has anyone seen this > behavior? The ports are suppose to be independent on Solaris zone. Why > is the Java Service wrapper socket complaining about the port being used > in another zone. > > If anyone can help me solve this mystery that would be just great. > > Thanks > > Kashif http://www.nabble.com/file/p12904287/artesia-service-wrapper.log > artesia-service-wrapper.log > -- View this message in context: http://www.nabble.com/Wrapper-behavior-on-Solaris-10-zone-tp12904287p23565345.html Sent from the Java Service Wrapper mailing list archive at Nabble.com. |
|
From: Leland, R. <rob...@io...> - 2009-05-13 15:18:37
|
Tanuki software has been very prompt and committed to helping out. When I asked if I could rename the DLL they just didn't just say YES they sent me a DLL execution trace and explained how the DLL's were loaded! When our server hardware crashed they helped out and we are back up and running in less than 24 hours. Before last January I was unaware or Tanuki.They didn't ask me to make this statement, nor am I receiving any benefit from making it. I would definitely buy other software from them. Rob Leland |
|
From: Leif M. <lei...@ta...> - 2009-05-12 23:06:28
|
Robert, I will get you back up and running off list. The licenses are located in a coworker's account. Cheers, Leif On Wed, May 13, 2009 at 2:28 AM, Leland, Robert <rob...@io...> wrote: > Leif, > > We had a test system with a node license. After it crashed and it was > restored from tape the license fingerprint has changed, > and wrapper won't start up. > Will I have to buy another license ? > > Also when I logged into manage my licenses with what I believe is the > correct account I was told that we had no > development or server licenses, we had purchased two standard licenses > for testing and one for production. > What would you suggest ? |
|
From: Leland, R. <rob...@io...> - 2009-05-12 17:40:42
|
Leif, We had a test system with a node license. After it crashed and it was restored from tape the license fingerprint has changed, and wrapper won't start up. Will I have to buy another license ? Also when I logged into manage my licenses with what I believe is the correct account I was told that we had no development or server licenses, we had purchased two standard licenses for testing and one for production. What would you suggest ? ___________________________________ Robert Leland INTEGRITYOne Partners P: (703) 581-6522 1900 Campus Commons Drive, Suite 150 F: (703) 476-7405 Reston, VA 20191 rob...@io... BUSINESS CONSULTING | TECHNOLOGY | INNOVATION R&D |
|
From: Leif M. <lei...@ta...> - 2009-05-06 15:32:28
|
Josh, Could you please set the wrapper.java.command.loglevel=INFO property and then reply with the resulting java command line? I would like to try and reproduce this here. We test with large classpaths, but I may not be testing large enough. If possible, please also attach your wrapper.conf file. Cheers, Leif On Tue, May 5, 2009 at 5:11 AM, Simon Lemay <sim...@gm...> wrote: > hello :) > > I have been using the service wrapper for quit sometime now and I have just > encountered a problem I cannot seem to solve. > > recently, my classpath has been growing a lot, and the more it grew, the > more problem i had with the wrapper; the service does not start anymore. > > so i tested the problem and added a LOT more jar to statup command line and > the service wrapper does not start anymore. it will try 5 time (the default > value) and than will exit saying that the application could not be started. > in the log, i found this: > > Send a packet START : start > socket send Failed (10035) > unable to send the start command to the JVM > > and if i reduce the lenght of the startup command line, the problem seems to > go away > > so i dont know if anybody else got the problem > > thanks in advance for you help > > Josh |
|
From: Andreas K. <and...@ya...> - 2009-05-06 07:51:34
|
Leif,
Sure it is a memory leak somewhere. The problem is that it is not present on my
local machine. I've been running loadtests with profiler and the memory didn't
increase at all.
Thanks for your hint with the heap. I didn't know I could do that. I'll try it.
/Andreas
--- Leif Mortenson <lei...@ta...> wrote:
> Andreas,
> This sounds like your application has a memory leak someplace. The
> Wrapper is failing because the JVM has run out of memory and is unable
> to continue.
>
> Have you tried playing around with creating a heap dump to see where
> your application is consuming so much memory? You can do so by adding
> the following to your wrapper.conf (set the additional number
> correctly):
>
> wrapper.java.additional.7=-Xrunhprof:heap=sites,depth=8
> wrapper.shutdown.timeout=600
> wrapper.jvm_exit.timeout=600
>
> The long shutdown timeouts are needed to make sure the JVM has time to
> write the dump file. The JVM appears frozen while it is being
> written.
>
> Let me know if you have any questions understanding the file. Be
> aware that it will be quite large.
>
> Cheers,
> Leif
>
>
> On Mon, May 4, 2009 at 11:38 PM, Andreas Karlsson
> <and...@ya...> wrote:
> >
> > Hi again,
> > So now the server has crashed again - running longer than before thanks to the
> > extended timout limit. The app eats memory and reports about low memory for days
> > before the actual crash. The home made garbage collector thread takes 50% of
> > processor-load also for days before the crash. I saw once in the log that the
> > GC-succeeded to reduce the memory used significantly and the wrapper complained
> > about it taking long time and increasing its limits.
> > Here is a snap of the log prior to the crash. Any hints on how to debug this is
> > highly appreciated;)
> > brgds
> > Andreas
> > ************************************************************
> > ************************************************************
> > 2009/05/01 10:29:32 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:32 | Received a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:32 | Send a packet PING : ok
> > DEBUG | wrapperp | 2009/05/01 10:29:32 | read a packet PING : ok
> > DEBUG | wrapper | 2009/05/01 10:29:32 | Got ping response from JVM
> > INFO | jvm 1 | 2009/05/01 10:29:34 | 256520976 2009-05-01 10:29:34,894
> WARN
> > com.sse.supervisor.SSESupervisor ** Low of memory [0]mb free !
> SSEGarbageCollect
> > will occur.
> > INFO | jvm 1 | 2009/05/01 10:29:36 | 2395102070 2009-05-01 10:29:36,191
> WARN
> > com.sse.supervisor.SSESupervisor ***** Real low of memory [0]mb
> free!!! Will
> > garbagecollect all singletons and throwing out old members.
> > INFO | jvm 1 | 2009/05/01 10:29:37 | 727880698 2009-05-01 10:29:37,472
> ERROR
> > com.sse.supervisor.SSESupervisor *************************** OUT
> OF MEMORY *** WILL
> > DIE *****************************
> > DEBUG | wrapperp | 2009/05/01 10:29:38 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:38 | Received a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:38 | Send a packet PING : ok
> > INFO | jvm 1 | 2009/05/01 10:29:38 | 176404686 2009-05-01 10:29:38,769
> WARN
> > com.sse.thread.SSEThreadManager 1604 long living threads alive (warn
> limit = 25)
> > DEBUG | wrapperp | 2009/05/01 10:29:38 | read a packet PING : ok
> > DEBUG | wrapper | 2009/05/01 10:29:38 | Got ping response from JVM
> > INFO | jvm 1 | 2009/05/01 10:29:43 | 4102609922 2009-05-01 10:29:42,644
> WARN
> > com.sse.supervisor.SSESupervisor ** Low of memory [0]mb free !
> SSEGarbageCollect
> > will occur.
> > DEBUG | wrapperp | 2009/05/01 10:29:44 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:45 | Received a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:45 | Send a packet PING : ok
> > INFO | jvm 1 | 2009/05/01 10:29:45 | 3599369368 2009-05-01 10:29:45,207
> WARN
> > com.sse.supervisor.SSESupervisor ***** Real low of memory [0]mb
> free!!! Will
> > garbagecollect all singletons and throwing out old members.
> > DEBUG | wrapperp | 2009/05/01 10:29:45 | read a packet PING : ok
> > DEBUG | wrapper | 2009/05/01 10:29:45 | Got ping response from JVM
> > INFO | jvm 1 | 2009/05/01 10:29:49 | 1881161018 2009-05-01 10:29:47,801
> ERROR
> > com.sse.supervisor.SSESupervisor *************************** OUT
> OF MEMORY *** WILL
> > DIE *****************************
> > DEBUG | wrapperp | 2009/05/01 10:29:50 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:50 | Received a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:50 | Send a packet PING : ok
> > DEBUG | wrapperp | 2009/05/01 10:29:50 | read a packet PING : ok
> > DEBUG | wrapper | 2009/05/01 10:29:50 | Got ping response from JVM
> > DEBUG | wrapperp | 2009/05/01 10:29:56 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:56 | Received a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:29:56 | Send a packet PING : ok
> > DEBUG | wrapperp | 2009/05/01 10:29:56 | read a packet PING : ok
> > DEBUG | wrapper | 2009/05/01 10:29:56 | Got ping response from JVM
> > INFO | jvm 1 | 2009/05/01 10:29:59 | 1644323367 2009-05-01 10:29:49,097
> WARN
> > com.sse.thread.SSEThreadManager 1605 long living threads alive (warn
> limit = 25)
> > DEBUG | wrapperp | 2009/05/01 10:30:02 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:30:03 | Closing socket.
> > INFO | jvm 1 | 2009/05/01 10:30:03 | 1959232901 2009-05-01 10:29:54,254
> WARN
> > com.sse.thread.SSEATThread ATWork jammed: SSEGarbageWrapper:
> > [java.lang.ref.WeakReference@1662402]
> > INFO | jvm 1 | 2009/05/01 10:30:03 | Server daemon died!
> > INFO | jvm 1 | 2009/05/01 10:30:03 | java.lang.OutOfMemoryError
> > INFO | jvm 1 | 2009/05/01 10:30:03 | Open socket to wrapper...
> > DEBUG | wrapperp | 2009/05/01 10:30:03 | socket read no code (closed?).
> > DEBUG | wrapperp | 2009/05/01 10:30:03 | accepted a socket from 127.0.0.1 on
> port
> > 2779
> > INFO | jvm 1 | 2009/05/01 10:30:07 | Opened Socket
> > INFO | jvm 1 | 2009/05/01 10:30:07 | Send a packet KEY : iRUaWR2l6u5k5Rdr
> > DEBUG | wrapperp | 2009/05/01 10:30:07 | read a packet KEY : iRUaWR2l6u5k5Rdr
> > DEBUG | wrapper | 2009/05/01 10:30:07 | Got key from JVM: iRUaWR2l6u5k5Rdr
> > DEBUG | wrapperp | 2009/05/01 10:30:08 | send a packet PING : ping
> > INFO | jvm 1 | 2009/05/01 10:30:10 |
> > INFO | jvm 1 | 2009/05/01 10:30:11 | Unexpected Signal :
> > EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D3A5947
> > INFO | jvm 1 | 2009/05/01 10:30:11 | Function=[Unknown.]
> > INFO | jvm 1 | 2009/05/01 10:30:11 | Library=C:\Program
> > Files\Singleton\knahem\jre\bin\client\jvm.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 |
> > INFO | jvm 1 | 2009/05/01 10:30:11 | NOTE: We are unable to locate the
> function
> > name symbol for the error
> > INFO | jvm 1 | 2009/05/01 10:30:11 | just occurred. Please refer to
> > release documentation for possible
> > INFO | jvm 1 | 2009/05/01 10:30:11 | reason and solutions.
> > INFO | jvm 1 | 2009/05/01 10:30:11 |
> > INFO | jvm 1 | 2009/05/01 10:30:11 |
> > INFO | jvm 1 | 2009/05/01 10:30:11 | Current Java thread:
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > java.net.PlainSocketImpl.socketAccept(Native Method)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | - locked <03C62228> (a
> > java.net.PlainSocketImpl)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > java.net.ServerSocket.implAccept(ServerSocket.java:439)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > java.net.ServerSocket.accept(ServerSocket.java:410)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:346)
> > INFO | jvm 1 | 2009/05/01 10:30:11 | at
> > org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:523)
> > INFO | jvm 1 | 2009/05/01 10:30:11 |
> > INFO | jvm 1 | 2009/05/01 10:30:11 | Dynamic libraries:
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x00400000 - 0x00406000
> C:\Program
> > Files\Singleton\knahem\jre\bin\java.exe
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x7C800000 - 0x7C8C2000
> > C:\WINDOWS\system32\ntdll.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77E40000 - 0x77F42000
> > C:\WINDOWS\system32\kernel32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x7D1E0000 - 0x7D27C000
> > C:\WINDOWS\system32\ADVAPI32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77C50000 - 0x77CEF000
> > C:\WINDOWS\system32\RPCRT4.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76F50000 - 0x76F63000
> > C:\WINDOWS\system32\Secur32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77BA0000 - 0x77BFA000
> > C:\WINDOWS\system32\MSVCRT.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D330000 - 0x6D45A000
> C:\Program
> > Files\Singleton\knahem\jre\bin\client\jvm.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77380000 - 0x77411000
> > C:\WINDOWS\system32\USER32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77C00000 - 0x77C49000
> > C:\WINDOWS\system32\GDI32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76AA0000 - 0x76ACD000
> > C:\WINDOWS\system32\WINMM.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D1D0000 - 0x6D1D7000
> C:\Program
> > Files\Singleton\knahem\jre\bin\hpi.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D300000 - 0x6D30D000
> C:\Program
> > Files\Singleton\knahem\jre\bin\verify.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D210000 - 0x6D229000
> C:\Program
> > Files\Singleton\knahem\jre\bin\java.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D320000 - 0x6D32D000
> C:\Program
> > Files\Singleton\knahem\jre\bin\zip.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x16C10000 - 0x16C1E000
> C:\Program
> > Files\Singleton\knahem\jar\Wrapper.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D2D0000 - 0x6D2DE000
> C:\Program
> > Files\Singleton\knahem\jre\bin\net.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71BB0000 - 0x71BB9000
> > C:\WINDOWS\system32\WSOCK32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71C00000 - 0x71C17000
> > C:\WINDOWS\system32\WS2_32.dll
> > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71BF0000 - 0x71BF8000
>
=== message truncated ===
|
|
From: Leif M. <lei...@ta...> - 2009-05-05 20:57:16
|
Yung Wei, It appears that your application completes normally. Could you please set the wrapper.debug=TRUE property, rerun your test, then post back with the resulting log file? I should then be able to give you more information. Cheers, Leif On Tue, May 5, 2009 at 1:13 PM, YungWei.Chen <Yun...@re...> wrote: > > Hi, > > I applied the wrapper to run a jar file that acquires user id and > password from users. After I entered the user id, the wrapper stopped for > some reason. Any idea? Thanks. > > STATUS | wrapper | 2009/05/04 18:14:14 | --> Wrapper Started as Console > STATUS | wrapper | 2009/05/04 18:14:14 | Java Service Wrapper Community > Edition 3.3.3 > STATUS | wrapper | 2009/05/04 18:14:14 | Copyright (C) 1999-2009 Tanuki > Software, Ltd. All Rights Reserved. > STATUS | wrapper | 2009/05/04 18:14:14 | > http://wrapper.tanukisoftware.org > STATUS | wrapper | 2009/05/04 18:14:14 | > STATUS | wrapper | 2009/05/04 18:14:15 | Launching a JVM... > INFO | jvm 1 | 2009/05/04 18:14:15 | WrapperManager: Initializing... > INFO | jvm 1 | 2009/05/04 18:14:15 | Enter login id: > STATUS | wrapper | 2009/05/04 18:14:22 | <-- Wrapper Stopped |
|
From: Leif M. <lei...@ta...> - 2009-05-05 20:48:03
|
Andreas, This sounds like your application has a memory leak someplace. The Wrapper is failing because the JVM has run out of memory and is unable to continue. Have you tried playing around with creating a heap dump to see where your application is consuming so much memory? You can do so by adding the following to your wrapper.conf (set the additional number correctly): wrapper.java.additional.7=-Xrunhprof:heap=sites,depth=8 wrapper.shutdown.timeout=600 wrapper.jvm_exit.timeout=600 The long shutdown timeouts are needed to make sure the JVM has time to write the dump file. The JVM appears frozen while it is being written. Let me know if you have any questions understanding the file. Be aware that it will be quite large. Cheers, Leif On Mon, May 4, 2009 at 11:38 PM, Andreas Karlsson <and...@ya...> wrote: > > Hi again, > So now the server has crashed again - running longer than before thanks to the > extended timout limit. The app eats memory and reports about low memory for days > before the actual crash. The home made garbage collector thread takes 50% of > processor-load also for days before the crash. I saw once in the log that the > GC-succeeded to reduce the memory used significantly and the wrapper complained > about it taking long time and increasing its limits. > Here is a snap of the log prior to the crash. Any hints on how to debug this is > highly appreciated;) > brgds > Andreas > ************************************************************ > ************************************************************ > 2009/05/01 10:29:32 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:32 | Received a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:32 | Send a packet PING : ok > DEBUG | wrapperp | 2009/05/01 10:29:32 | read a packet PING : ok > DEBUG | wrapper | 2009/05/01 10:29:32 | Got ping response from JVM > INFO | jvm 1 | 2009/05/01 10:29:34 | 256520976 2009-05-01 10:29:34,894 WARN > com.sse.supervisor.SSESupervisor ** Low of memory [0]mb free ! SSEGarbageCollect > will occur. > INFO | jvm 1 | 2009/05/01 10:29:36 | 2395102070 2009-05-01 10:29:36,191 WARN > com.sse.supervisor.SSESupervisor ***** Real low of memory [0]mb free!!! Will > garbagecollect all singletons and throwing out old members. > INFO | jvm 1 | 2009/05/01 10:29:37 | 727880698 2009-05-01 10:29:37,472 ERROR > com.sse.supervisor.SSESupervisor *************************** OUT OF MEMORY *** WILL > DIE ***************************** > DEBUG | wrapperp | 2009/05/01 10:29:38 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:38 | Received a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:38 | Send a packet PING : ok > INFO | jvm 1 | 2009/05/01 10:29:38 | 176404686 2009-05-01 10:29:38,769 WARN > com.sse.thread.SSEThreadManager 1604 long living threads alive (warn limit = 25) > DEBUG | wrapperp | 2009/05/01 10:29:38 | read a packet PING : ok > DEBUG | wrapper | 2009/05/01 10:29:38 | Got ping response from JVM > INFO | jvm 1 | 2009/05/01 10:29:43 | 4102609922 2009-05-01 10:29:42,644 WARN > com.sse.supervisor.SSESupervisor ** Low of memory [0]mb free ! SSEGarbageCollect > will occur. > DEBUG | wrapperp | 2009/05/01 10:29:44 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:45 | Received a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:45 | Send a packet PING : ok > INFO | jvm 1 | 2009/05/01 10:29:45 | 3599369368 2009-05-01 10:29:45,207 WARN > com.sse.supervisor.SSESupervisor ***** Real low of memory [0]mb free!!! Will > garbagecollect all singletons and throwing out old members. > DEBUG | wrapperp | 2009/05/01 10:29:45 | read a packet PING : ok > DEBUG | wrapper | 2009/05/01 10:29:45 | Got ping response from JVM > INFO | jvm 1 | 2009/05/01 10:29:49 | 1881161018 2009-05-01 10:29:47,801 ERROR > com.sse.supervisor.SSESupervisor *************************** OUT OF MEMORY *** WILL > DIE ***************************** > DEBUG | wrapperp | 2009/05/01 10:29:50 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:50 | Received a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:50 | Send a packet PING : ok > DEBUG | wrapperp | 2009/05/01 10:29:50 | read a packet PING : ok > DEBUG | wrapper | 2009/05/01 10:29:50 | Got ping response from JVM > DEBUG | wrapperp | 2009/05/01 10:29:56 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:56 | Received a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:29:56 | Send a packet PING : ok > DEBUG | wrapperp | 2009/05/01 10:29:56 | read a packet PING : ok > DEBUG | wrapper | 2009/05/01 10:29:56 | Got ping response from JVM > INFO | jvm 1 | 2009/05/01 10:29:59 | 1644323367 2009-05-01 10:29:49,097 WARN > com.sse.thread.SSEThreadManager 1605 long living threads alive (warn limit = 25) > DEBUG | wrapperp | 2009/05/01 10:30:02 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:30:03 | Closing socket. > INFO | jvm 1 | 2009/05/01 10:30:03 | 1959232901 2009-05-01 10:29:54,254 WARN > com.sse.thread.SSEATThread ATWork jammed: SSEGarbageWrapper: > [java.lang.ref.WeakReference@1662402] > INFO | jvm 1 | 2009/05/01 10:30:03 | Server daemon died! > INFO | jvm 1 | 2009/05/01 10:30:03 | java.lang.OutOfMemoryError > INFO | jvm 1 | 2009/05/01 10:30:03 | Open socket to wrapper... > DEBUG | wrapperp | 2009/05/01 10:30:03 | socket read no code (closed?). > DEBUG | wrapperp | 2009/05/01 10:30:03 | accepted a socket from 127.0.0.1 on port > 2779 > INFO | jvm 1 | 2009/05/01 10:30:07 | Opened Socket > INFO | jvm 1 | 2009/05/01 10:30:07 | Send a packet KEY : iRUaWR2l6u5k5Rdr > DEBUG | wrapperp | 2009/05/01 10:30:07 | read a packet KEY : iRUaWR2l6u5k5Rdr > DEBUG | wrapper | 2009/05/01 10:30:07 | Got key from JVM: iRUaWR2l6u5k5Rdr > DEBUG | wrapperp | 2009/05/01 10:30:08 | send a packet PING : ping > INFO | jvm 1 | 2009/05/01 10:30:10 | > INFO | jvm 1 | 2009/05/01 10:30:11 | Unexpected Signal : > EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D3A5947 > INFO | jvm 1 | 2009/05/01 10:30:11 | Function=[Unknown.] > INFO | jvm 1 | 2009/05/01 10:30:11 | Library=C:\Program > Files\Singleton\knahem\jre\bin\client\jvm.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | > INFO | jvm 1 | 2009/05/01 10:30:11 | NOTE: We are unable to locate the function > name symbol for the error > INFO | jvm 1 | 2009/05/01 10:30:11 | just occurred. Please refer to > release documentation for possible > INFO | jvm 1 | 2009/05/01 10:30:11 | reason and solutions. > INFO | jvm 1 | 2009/05/01 10:30:11 | > INFO | jvm 1 | 2009/05/01 10:30:11 | > INFO | jvm 1 | 2009/05/01 10:30:11 | Current Java thread: > INFO | jvm 1 | 2009/05/01 10:30:11 | at > java.net.PlainSocketImpl.socketAccept(Native Method) > INFO | jvm 1 | 2009/05/01 10:30:11 | at > java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) > INFO | jvm 1 | 2009/05/01 10:30:11 | - locked <03C62228> (a > java.net.PlainSocketImpl) > INFO | jvm 1 | 2009/05/01 10:30:11 | at > java.net.ServerSocket.implAccept(ServerSocket.java:439) > INFO | jvm 1 | 2009/05/01 10:30:11 | at > java.net.ServerSocket.accept(ServerSocket.java:410) > INFO | jvm 1 | 2009/05/01 10:30:11 | at > org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:346) > INFO | jvm 1 | 2009/05/01 10:30:11 | at > org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:523) > INFO | jvm 1 | 2009/05/01 10:30:11 | > INFO | jvm 1 | 2009/05/01 10:30:11 | Dynamic libraries: > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x00400000 - 0x00406000 C:\Program > Files\Singleton\knahem\jre\bin\java.exe > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x7C800000 - 0x7C8C2000 > C:\WINDOWS\system32\ntdll.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77E40000 - 0x77F42000 > C:\WINDOWS\system32\kernel32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x7D1E0000 - 0x7D27C000 > C:\WINDOWS\system32\ADVAPI32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77C50000 - 0x77CEF000 > C:\WINDOWS\system32\RPCRT4.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76F50000 - 0x76F63000 > C:\WINDOWS\system32\Secur32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77BA0000 - 0x77BFA000 > C:\WINDOWS\system32\MSVCRT.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D330000 - 0x6D45A000 C:\Program > Files\Singleton\knahem\jre\bin\client\jvm.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77380000 - 0x77411000 > C:\WINDOWS\system32\USER32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77C00000 - 0x77C49000 > C:\WINDOWS\system32\GDI32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76AA0000 - 0x76ACD000 > C:\WINDOWS\system32\WINMM.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D1D0000 - 0x6D1D7000 C:\Program > Files\Singleton\knahem\jre\bin\hpi.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D300000 - 0x6D30D000 C:\Program > Files\Singleton\knahem\jre\bin\verify.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D210000 - 0x6D229000 C:\Program > Files\Singleton\knahem\jre\bin\java.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D320000 - 0x6D32D000 C:\Program > Files\Singleton\knahem\jre\bin\zip.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x16C10000 - 0x16C1E000 C:\Program > Files\Singleton\knahem\jar\Wrapper.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D2D0000 - 0x6D2DE000 C:\Program > Files\Singleton\knahem\jre\bin\net.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71BB0000 - 0x71BB9000 > C:\WINDOWS\system32\WSOCK32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71C00000 - 0x71C17000 > C:\WINDOWS\system32\WS2_32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71BF0000 - 0x71BF8000 > C:\WINDOWS\system32\WS2HELP.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71B20000 - 0x71B61000 > C:\WINDOWS\system32\mswsock.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x5F270000 - 0x5F2CA000 > C:\WINDOWS\system32\hnetcfg.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x71AE0000 - 0x71AE8000 > C:\WINDOWS\System32\wshtcpip.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76ED0000 - 0x76EFA000 > C:\WINDOWS\system32\DNSAPI.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76F70000 - 0x76F77000 > C:\WINDOWS\System32\winrnr.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76F10000 - 0x76F3E000 > C:\WINDOWS\system32\WLDAP32.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76F80000 - 0x76F85000 > C:\WINDOWS\system32\rasadhlp.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76C10000 - 0x76C38000 > C:\WINDOWS\system32\imagehlp.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x6D580000 - 0x6D628000 > C:\WINDOWS\system32\dbghelp.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x77B90000 - 0x77B98000 > C:\WINDOWS\system32\VERSION.dll > INFO | jvm 1 | 2009/05/01 10:30:11 | 0x76B70000 - 0x76B7B000 > C:\WINDOWS\system32\PSAPI.DLL > INFO | jvm 1 | 2009/05/01 10:30:11 | > INFO | jvm 1 | 2009/05/01 10:30:11 | Local Time = Fri May 01 10:30:10 2009 > INFO | jvm 1 | 2009/05/01 10:30:11 | Elapsed Time = 1073809 > INFO | jvm 1 | 2009/05/01 10:30:11 | # > INFO | jvm 1 | 2009/05/01 10:30:11 | # HotSpot Virtual Machine Error : > EXCEPTION_ACCESS_VIOLATION > INFO | jvm 1 | 2009/05/01 10:30:11 | # Error ID : 4F530E43505002E6 > INFO | jvm 1 | 2009/05/01 10:30:11 | # Please report this error at > INFO | jvm 1 | 2009/05/01 10:30:11 | # > http://java.sun.com/cgi-bin/bugreport.cgi > INFO | jvm 1 | 2009/05/01 10:30:11 | # > INFO | jvm 1 | 2009/05/01 10:30:11 | # Java VM: Java HotSpot(TM) Client VM > (1.4.1_01-b01 mixed mode) > INFO | jvm 1 | 2009/05/01 10:30:11 | # > INFO | jvm 1 | 2009/05/01 10:30:11 | # An error report file has been saved as > hs_err_pid1416.log. > INFO | jvm 1 | 2009/05/01 10:30:11 | # Please refer to the file for further > information. > INFO | jvm 1 | 2009/05/01 10:30:11 | # > ERROR | wrapper | 2009/05/01 10:30:11 | JVM exited unexpectedly. > STATUS | wrapper | 2009/05/01 10:30:18 | Launching a JVM... > DEBUG | wrapper | 2009/05/01 10:30:18 | command: ".\jre\bin\java.exe" -Xms96m > -Xmx256m -Djava.library.path="jar" -classpath > "jar/wrapper.jar;bin;jar/scm/jndi.zip;jar/scm/xmlParserAPIs.jar;jar/scm/xml-apis.jar;jar/scm/xercesImpl.jar;jar/scm/org.mortbay.jmx.jar;jar/scm/org.mortbay.jetty.jar;jar/scm/msutil.jar;jar/scm/mssqlserver.jar;jar/scm/msbase.jar;jar/scm/mail.jar;jar/scm/log4j-1.2.8.jar;jar/scm/jsse.jar;jar/scm/jnet.jar;jar/scm/jmxtools.jar;jar/scm/jmxri.jar;jar/scm/jcert.jar;jar/scm/javax.servlet.jar;jar/scm/jasper-runtime.jar;jar/scm/jasper-compiler.jar;jar/scm/ant.jar;jar/scm/activation.jar;jar/scm/jta.zip;jar/scm/nls_charset12.zip;jar/scm/jxl.jar" > -Dwrapper.key="__cnKEm_eo5rsqvD" -Dwrapper.port=32000 -Dwrapper.debug="TRUE" > -Dwrapper.service="TRUE" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=2 > org.tanukisoftware.wrapper.WrapperSimpleApp com.scm.main.WebServer khm > DEBUG | wrapper | 2009/05/01 10:30:18 | Java Virtual Machine started (PID=8972) > INFO | jvm 2 | 2009/05/01 10:30:20 | Wrapper Manager: JVM #2 > INFO | jvm 2 | 2009/05/01 10:30:20 | Wrapper Manager: Registering shutdown hook > INFO | jvm 2 | 2009/05/01 10:30:20 | Wrapper Manager: Using wrapper > INFO | jvm 2 | 2009/05/01 10:30:20 | Calling native initialization method. > INFO | jvm 2 | 2009/05/01 10:30:20 | Initializing WrapperManager native > library. > INFO | jvm 2 | 2009/05/01 10:30:20 | Java Executable: C:\Program > Files\Singleton\knahem\jre\bin\java.exe > INFO | jvm 2 | 2009/05/01 10:30:20 | Java Version : 1.4.1_01-b01 Java > HotSpot(TM) Client VM > INFO | jvm 2 | 2009/05/01 10:30:20 | Java VM Vendor : Sun Microsystems Inc. > INFO | jvm 2 | 2009/05/01 10:30:20 | > INFO | jvm 2 | 2009/05/01 10:30:20 | Wrapper (Version 3.0.5) > INFO | jvm 2 | 2009/05/01 10:30:20 | > INFO | jvm 2 | 2009/05/01 10:30:20 | Open socket to wrapper... > INFO | jvm 2 | 2009/05/01 10:30:20 | Opened Socket > INFO | jvm 2 | 2009/05/01 10:30:20 | Send a packet KEY : __cnKEm_eo5rsqvD > INFO | jvm 2 | 2009/05/01 10:30:20 | > handleSocket(Socket[addr=/127.0.0.1,port=32000,localport=2780]) > DEBUG | wrapperp | 2009/05/01 10:30:20 | accepted a socket from 127.0.0.1 on port > 2780 > DEBUG | wrapperp | 2009/05/01 10:30:20 | read a packet KEY : __cnKEm_eo5rsqvD > DEBUG | wrapper | 2009/05/01 10:30:20 | Got key from JVM: __cnKEm_eo5rsqvD > DEBUG | wrapperp | 2009/05/01 10:30:20 | send a packet LOW_LOG_LEVEL : 1 > DEBUG | wrapperp | 2009/05/01 10:30:20 | send a packet PING_TIMEOUT : 120 > DEBUG | wrapper | 2009/05/01 10:30:20 | Start Application. > DEBUG | wrapperp | 2009/05/01 10:30:20 | send a packet START : start > INFO | jvm 2 | 2009/05/01 10:30:21 | Received a packet LOW_LOG_LEVEL : 1 > INFO | jvm 2 | 2009/05/01 10:30:21 | Wrapper Manager: LowLogLevel from Wrapper > is 1 > INFO | jvm 2 | 2009/05/01 10:30:21 | Received a packet PING_TIMEOUT : 120 > INFO | jvm 2 | 2009/05/01 10:30:21 | Wrapper Manager: PingTimeout from Wrapper > is 120000 > INFO | jvm 2 | 2009/05/01 10:30:21 | Received a packet START : start > INFO | jvm 2 | 2009/05/01 10:30:21 | calling listener.start() > INFO | jvm 2 | 2009/05/01 10:30:21 | WrapperSimpleApp: start(args) > INFO | jvm 2 | 2009/05/01 10:30:21 | WrapperSimpleApp: invoking main method > INFO | jvm 2 | 2009/05/01 10:30:22 | 1 2009-05-01 10:30:22,285 INFO > com.sse.thread.SSEThreadManager SSEThreadManager created > ****************************************************** > ****************************************************** > ****************************************************** > > > > --- Leif Mortenson <lei...@ta...> wrote: > >> Andreas, >> One think that you have to be very careful of is to make sure that the >> JVM is never forced to swap any of its memory to disk. This is >> nothing related to the Wrapper. But Java gets VERY VERY VERY slow >> when its memory is being swapped. It is common for 1/1000 affect on >> performance. It may be possible that your new database is using a >> lot more memory and thus forcing the JVM to swap. >> >> Take a look at your task manager and make sure you have enough memory. >> I will see if there is any way that I can tell when this is happening >> to Java and warn the user about it in the log. >> >> Cheers, >> Leif >> >> On Fri, Apr 17, 2009 at 5:02 PM, Andreas Karlsson >> <and...@ya...> wrote: >> > >> > Hi Leif, >> > I've restarted it with the setting you suggested. >> > The problem shows up at any time between 7-10 days from last restart. >> > Often the application complains about low memory and performs garbage collection >> > prior to that. >> > I've been fiddling with the memory settings and now they should be the same for >> the >> > server-jvm-wrapper but the error still occurs. >> > I'll get back to you next week when it has restarted again. >> > brgds >> > Andreas >> > >> > --- Leif Mortenson <le...@ta...> wrote: >> > >> >> Andreas, >> >> Most likely the Java process is being starved of CPU and that is >> >> leading to the Wrapper thinking it is frozen. If that is the case >> >> then you can easily resolve the problem by setting the following >> >> property: >> >> wrapper.ping.timeout=120 >> >> (http://wrapper.tanukisoftware.org/doc/english/prop-ping-timeout.html) >> >> >> >> That will tell the Wrapper to allow the JVM to be frozen for 120 >> >> seconds before it is killed. The default is 30 seconds. >> >> >> >> However, your web site would be unresponsive during that period still. >> >> Most likely it is now for at least 30 seconds. Do the restarts >> >> happen at any particular time each week? Is there some large DB >> >> processing being done that is consuming all of the CPU? It may be >> >> necessary to move the Database over to another physical server to make >> >> sure your app server is not being affected by that processing. >> >> >> >> If you set the wrapper.debug=TRUE property and then reproduce this, I >> >> might be able to tell you a little more information about what is >> >> happening prior to the restart. I would only need the 3-5 minutes of >> >> time prior to the Wrapper timing out and killing the JVM. >> >> >> >> There have also been several bugs fixed since 3.0.5 which could affect >> >> this. Please review the release-notes: >> >> http://wrapper.tanukisoftware.org/doc/english/release-notes.html >> >> >> >> Cheers, >> >> Leif >> >> >> >> On Thu, Apr 16, 2009 at 5:55 PM, Andreas Karlsson >> >> <and...@ya...> wrote: >> >> > >> >> > Hi wrapper-folks! >> >> > I would love some hints and ideas on how to debug this problem and find a >> >> solution. >> >> > >> >> > The system is a >> >> > - windows server 2003 >> >> > - jettyserver >> >> > - java 1.4.1 >> >> > - wrapper 3.0.5 >> >> > >> >> > It has been running for years without any problems. But after some updates of >> >> the >> >> > data in the database where the web-content is stored and a recompile of the >> code >> >> it >> >> > started to produce these messages (pasted below). It happens approximately >> once >> >> > every week. >> >> > How can I debug this? >> >> > Is there a way to trigg a dump when it happens? >> >> > >> >> > >> >> > ERROR | wrapper | 2009/04/15 10:17:07 | JVM appears hung: Timed out waiting >> >> for >> >> > signal from JVM. >> >> > ERROR | wrapper | 2009/04/15 10:17:07 | Java Virtual Machine did not exit >> on >> >> > request, terminated >> >> > STATUS | wrapper | 2009/04/15 10:17:13 | Launching a JVM... >> >> > INFO | jvm 2 | 2009/04/15 10:17:14 | Wrapper (Version 3.0.5) >> >> > >> >> > brgds >> >> > Andreas |
|
From: YungWei.Chen <Yun...@re...> - 2009-05-05 04:34:54
|
Hi,
I applied the wrapper to run a jar file that acquires user id and password from users. After I entered the user id, the wrapper stopped for some reason. Any idea? Thanks.
STATUS | wrapper | 2009/05/04 18:14:14 | --> Wrapper Started as Console
STATUS | wrapper | 2009/05/04 18:14:14 | Java Service Wrapper Community Edition 3.3.3
STATUS | wrapper | 2009/05/04 18:14:14 | Copyright (C) 1999-2009 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper | 2009/05/04 18:14:14 | http://wrapper.tanukisoftware.org
STATUS | wrapper | 2009/05/04 18:14:14 |
STATUS | wrapper | 2009/05/04 18:14:15 | Launching a JVM...
INFO | jvm 1 | 2009/05/04 18:14:15 | WrapperManager: Initializing...
INFO | jvm 1 | 2009/05/04 18:14:15 | Enter login id:
STATUS | wrapper | 2009/05/04 18:14:22 | <-- Wrapper Stopped
|
|
From: Simon L. <sim...@gm...> - 2009-05-04 20:11:21
|
hello :) I have been using the service wrapper for quit sometime now and I have just encountered a problem I cannot seem to solve. recently, my classpath has been growing a lot, and the more it grew, the more problem i had with the wrapper; the service does not start anymore. so i tested the problem and added a LOT more jar to statup command line and the service wrapper does not start anymore. it will try 5 time (the default value) and than will exit saying that the application could not be started. in the log, i found this: Send a packet START : start socket send Failed (10035) unable to send the start command to the JVM and if i reduce the lenght of the startup command line, the problem seems to go away so i dont know if anybody else got the problem thanks in advance for you help Josh |