You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Amol Puglia <am...@yahoo.com> on 2010/11/15 12:03:17 UTC

Tomcat Going down Frequently

Hello team,

Tomcat Server going down frequently with the following messages in the logs.

kindly help.

body { margin: 0pt; padding: 0pt; }td, div { font-family: Tahoma; font-size: 8pt; vertical-align: top; }body { margin: 0pt; padding: 0pt; }.transcript { background-color: rgb(210, 210, 210); }.messageBlock { margin-left: 4px; margin-bottom: 3px; }.message { margin-left: 100px; word-wrap: break-word; }.messageCont { margin-left: 100px; word-wrap: break-word; }.other { color: rgb(57, 87, 122); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.myself { color: rgb(218, 129, 3); font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont { font-size: 8px; text-align: right; color: rgb(57, 87, 122); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.myselfCont { font-size: 8px; text-align: right; color: rgb(218, 129, 3); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width:
 95px; }.system { margin-left: 4px; word-wrap: break-word; color: rgb(218, 129, 3); font-style: normal; font-weight: normal; }.showTimestamp { margin-right: 3px; float: right; color: rgb(153, 153, 153); font-style: normal; font-weight: normal; }.other1 { color: rgb(172, 32, 0); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont1 { font-size: 8px; text-align: right; color: rgb(172, 32, 0); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other2 { color: rgb(60, 159, 168); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont2 { font-size: 8px; text-align: right; color: rgb(60, 159, 168); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other3 { color: rgb(226, 86, 20); vertical-align: top; font-weight: bold; font-style:
 normal; float: left; width: 95px; }.otherCont3 { font-size: 8px; text-align: right; color: rgb(226, 86, 20); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other4 { color: rgb(11, 106, 200); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont4 { font-size: 8px; text-align: right; color: rgb(11, 106, 200); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other5 { color: rgb(178, 50, 144); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont5 { font-size: 8px; text-align: right; color: rgb(178, 50, 144); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other6 { color: rgb(2, 231, 199); vertical-align: top; font-weight: bold; font-style: normal;
 float: left; width: 95px; }.otherCont6 { font-size: 8px; text-align: right; color: rgb(2, 231, 199); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other7 { color: rgb(91, 50, 132); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont7 { font-size: 8px; text-align: right; color: rgb(91, 50, 132); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.tsDisplay { display: block; }



Nov 12, 2010 1:29:23 PM org.apache.catalina.core.ContainerBase backgroundProcess
WARNING: Exception processing manager org.apache.catalina.session.StandardManager@a20981 background process
java.lang.IllegalStateException: getAttributeNames: Session already invalidated
        at org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1052)
        at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
        at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
        at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)
        at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1654)
        at org.apache.catalina.session.StandardSession.expire(StandardSession.java:756)
        at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:592)
        at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:680)
        at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:665)
        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
        at java.lang.Thread.run(Thread.java:619)
Nov 12, 2010 1:33:09 PM org.apache.coyote.http11.Http11AprProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-9083
Nov 12, 2010 1:33:09 PM org.apache.coyote.ajp.AjpAprProtocol pause
INFO: Pausing Coyote AJP/1.3 on ajp-9011
Nov 12, 2010 1:33:10 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Nov 12, 2010 1:33:11 PM org.apache.coyote.http11.Http11AprProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-9083
Nov 12, 2010 1:33:11 PM org.apache.coyote.ajp.AjpAprProtocol destroy
INFO: Stopping Coyote AJP/1.3 on ajp-9011




      

Re: Tomcat Going down Frequently

Posted by Jim Cox <sh...@gmail.com>.
Is "LoginBean.java" your code (or code that you control)? You might
have to change that code a bit to handle a session that has already
been invalidated.

On Mon, Nov 15, 2010 at 6:03 AM, Amol Puglia <am...@yahoo.com> wrote:
> Hello team,
>
> Tomcat Server going down frequently with the following messages in the logs.
>
> kindly help.
>
> body { margin: 0pt; padding: 0pt; }td, div { font-family: Tahoma; font-size: 8pt; vertical-align: top; }body { margin: 0pt; padding: 0pt; }.transcript { background-color: rgb(210, 210, 210); }.messageBlock { margin-left: 4px; margin-bottom: 3px; }.message { margin-left: 100px; word-wrap: break-word; }.messageCont { margin-left: 100px; word-wrap: break-word; }.other { color: rgb(57, 87, 122); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.myself { color: rgb(218, 129, 3); font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont { font-size: 8px; text-align: right; color: rgb(57, 87, 122); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.myselfCont { font-size: 8px; text-align: right; color: rgb(218, 129, 3); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width:
>  95px; }.system { margin-left: 4px; word-wrap: break-word; color: rgb(218, 129, 3); font-style: normal; font-weight: normal; }.showTimestamp { margin-right: 3px; float: right; color: rgb(153, 153, 153); font-style: normal; font-weight: normal; }.other1 { color: rgb(172, 32, 0); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont1 { font-size: 8px; text-align: right; color: rgb(172, 32, 0); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other2 { color: rgb(60, 159, 168); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont2 { font-size: 8px; text-align: right; color: rgb(60, 159, 168); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other3 { color: rgb(226, 86, 20); vertical-align: top; font-weight: bold; font-style:
>  normal; float: left; width: 95px; }.otherCont3 { font-size: 8px; text-align: right; color: rgb(226, 86, 20); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other4 { color: rgb(11, 106, 200); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont4 { font-size: 8px; text-align: right; color: rgb(11, 106, 200); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other5 { color: rgb(178, 50, 144); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont5 { font-size: 8px; text-align: right; color: rgb(178, 50, 144); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other6 { color: rgb(2, 231, 199); vertical-align: top; font-weight: bold; font-style: normal;
>  float: left; width: 95px; }.otherCont6 { font-size: 8px; text-align: right; color: rgb(2, 231, 199); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.other7 { color: rgb(91, 50, 132); vertical-align: top; font-weight: bold; font-style: normal; float: left; width: 95px; }.otherCont7 { font-size: 8px; text-align: right; color: rgb(91, 50, 132); font-family: Arial,Lucida Grande; font-style: normal; vertical-align: top; font-weight: bold; float: left; width: 95px; }.tsDisplay { display: block; }
>
>
>
> Nov 12, 2010 1:29:23 PM org.apache.catalina.core.ContainerBase backgroundProcess
> WARNING: Exception processing manager org.apache.catalina.session.StandardManager@a20981 background process
> java.lang.IllegalStateException: getAttributeNames: Session already invalidated
>        at org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1052)
>        at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
>        at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
>        at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)
>        at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1654)
>        at org.apache.catalina.session.StandardSession.expire(StandardSession.java:756)
>        at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:592)
>        at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:680)
>        at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:665)
>        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
>        at java.lang.Thread.run(Thread.java:619)
> Nov 12, 2010 1:33:09 PM org.apache.coyote.http11.Http11AprProtocol pause
> INFO: Pausing Coyote HTTP/1.1 on http-9083
> Nov 12, 2010 1:33:09 PM org.apache.coyote.ajp.AjpAprProtocol pause
> INFO: Pausing Coyote AJP/1.3 on ajp-9011
> Nov 12, 2010 1:33:10 PM org.apache.catalina.core.StandardService stop
> INFO: Stopping service Catalina
> Nov 12, 2010 1:33:11 PM org.apache.coyote.http11.Http11AprProtocol destroy
> INFO: Stopping Coyote HTTP/1.1 on http-9083
> Nov 12, 2010 1:33:11 PM org.apache.coyote.ajp.AjpAprProtocol destroy
> INFO: Stopping Coyote AJP/1.3 on ajp-9011
>
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Amol Puglia <am...@yahoo.com>.
Hello Pid,

Thanks for your response. We are using following versions of softwares.

1)Tomcat version :- 6.0.20

2)Jdk version :- jdk160_05

3)Operating System :- Solaris 5.10

4)Apache version :- 2.2.16


Also CSS contents are not form logs it came by mistake.


Please help and let me know in case any information is required.

--- On Mon, 11/15/10, Pid <pi...@pidster.com> wrote:

From: Pid <pi...@pidster.com>
Subject: Re: Tomcat Going down Frequently
To: "Tomcat Users List" <us...@tomcat.apache.org>
Date: Monday, November 15, 2010, 5:09 PM

On 15/11/2010 11:35, André Warnier wrote:
> Amol Puglia wrote:
>> Hello team,
>>
>> Tomcat Server going down frequently with the following messages in the
>> logs.
>>
>> kindly help.
>>
> Hello Amol.
> If it is not too much of an inconvenience, would you kindly care to let
> us know which version of Tomcat this is, which JVM, on which platform,
> and where you got it from ?

And if all of the CSS content I saw in the previous email is actually in
your logs?


p

> For info, there is a script in tomcat_dir/bin, named version.(sh|bat),
> which should print this all out nicely.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 




      

Re: Tomcat Going down Frequently

Posted by Pid <pi...@pidster.com>.
On 15/11/2010 11:35, André Warnier wrote:
> Amol Puglia wrote:
>> Hello team,
>>
>> Tomcat Server going down frequently with the following messages in the
>> logs.
>>
>> kindly help.
>>
> Hello Amol.
> If it is not too much of an inconvenience, would you kindly care to let
> us know which version of Tomcat this is, which JVM, on which platform,
> and where you got it from ?

And if all of the CSS content I saw in the previous email is actually in
your logs?


p

> For info, there is a script in tomcat_dir/bin, named version.(sh|bat),
> which should print this all out nicely.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


Re: Tomcat Going down Frequently

Posted by André Warnier <aw...@ice-sa.com>.
Amol Puglia wrote:
> Hello team,
> 
> Tomcat Server going down frequently with the following messages in the logs.
> 
> kindly help.
> 
Hello Amol.
If it is not too much of an inconvenience, would you kindly care to let us know which 
version of Tomcat this is, which JVM, on which platform, and where you got it from ?

For info, there is a script in tomcat_dir/bin, named version.(sh|bat), which should print 
this all out nicely.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Pid <pi...@pidster.com>.
On 16/11/2010 14:59, Amol Puglia wrote:
> Hello Andre,
> 
> We are proxying request from apache to tomcat using mod_proxy and mod_proxy_ajp
> 
> Following is the load balancer configuration in apache.
> 
> kindly let me know in case you need further details.
> 
> # Port 80
>    Listen server_name:80
>    #Listen 153.88.86.250:80
>    <VirtualHost _default_:80>
>       ServerName server_name
>        
> 
>       Timeout 10800
>       ProxyTimeout 10800
>       ProxyRequests Off
> 
> 

The next line:
>        ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID|jsessionid nofailover=On
>        #ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID nofailover=On
> 
>        ProxyPreserveHost On
> 

Overrides all of these lines, so they're no use:
>        ProxyPass /eMatrix ajp://server_name:8009/eMatrix
>        ProxyPass /eMatrix ajp://server_name:8010/eMatrix
>       ProxyPass /eMatrix ajp://server_name:8011/eMatrix
>       ProxyPass /eMatrix ajp://server_name:9009/eMatrix
>       ProxyPass /eMatrix ajp://server_name:9010/eMatrix
>       ProxyPass /eMatrix ajp://server_name:9011/eMatrix

I don't think* this applies, if the above is wrong:
>        ProxyPassReverse /eMatrix ajp://server_name:8009/eMatrix
>        ProxyPassReverse /eMatrix ajp://server_name:8010/eMatrix
>        ProxyPassReverse /eMatrix ajp://server_name:8011/eMatrix
>        ProxyPassReverse /eMatrix ajp://server_name:9009/eMatrix
>        ProxyPassReverse /eMatrix ajp://server_name:9010/eMatrix
>        ProxyPassReverse /eMatrix ajp://server_name:9011/eMatrix


p

* Someone will correct me if I'm wrong

>        <Proxy balancer://cluster>
>          BalancerMember ajp://server_name:8009/eMatrix route=marsprod_rmiserver_1 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:8010/eMatrix route=marsprod_rmiserver_2 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:8011/eMatrix route=marsprod_rmiserver_3 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:9009/eMatrix route=marsprod_rmiserver_4 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:9010/eMatrix route=marsprod_rmiserver_5 loadfactor=33 retry=60
>          #load balancing performed based on number of user requests
>          #ProxySet lbmethod=byrequests
>          # Report server is for Report purpose only so balancing is required now.
>          BalancerMember ajp://server_name:9011/eMatrix route=marsprod_rmiserver_6 loadfactor=33 retry=60
>          ProxySet lbmethod=byrequests
>        </Proxy>
> 
>        #Status page for balancer
> 
>        <Location /balancer>
>        SetHandler balancer-manager
>        Order Deny,Allow
>        Deny from all
>        Allow from all
>       </Location>
> 
>       ProxyStatus On
> 
>       <Location /status>
>       SetHandler server-status
>       Order Deny,Allow
>       Deny from all
>       Allow from all
>       </Location>
> 
>       ErrorLog /opt/web/apache/app/mxora/logs/error.log
> 
> 
> 
>       
>    </VirtualHost>
> # END port 80
> 
> --- On Tue, 11/16/10, André Warnier <aw...@ice-sa.com> wrote:
> 
> From: André Warnier <aw...@ice-sa.com>
> Subject: Re: Tomcat Going down Frequently
> To: "Tomcat Users List" <us...@tomcat.apache.org>
> Date: Tuesday, November 16, 2010, 4:55 PM
> 
> Amol Puglia wrote:
>> Hello Andre,
>>
>> Thanks for the updates. I am not using mod_jk , I am using proxy modules for redirecting request from apache to tomcat.
>>
> 
> Ok, sorry, I confused your post with another one.
> 
> But anyway, your configuration shows a whole lot of proxy modules, many of which do not seem to have any relation with proxying calls to Tomcat. Such as these :
> 
>>> LoadModule proxy_connect_module modules/mod_proxy_connect.so
>>> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
>>> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
> 
> The following /may/ have a relation with the proxying to Tomcat, but which one are you really using ?
> 
>>> LoadModule proxy_http_module modules/mod_proxy_http.so
>>> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
> 
> Usually, people use *either* mod_proxy_http *or* mod_proxy_ajp, so which one is being used ? Can you provide some information about the apache httpd configuration that shows what is being proxied and how ?
> 
> 
>> As you said that there is problem in application code, Is there anything we can point out where exactly is the problem in the code or configuration?
>>
> 
> I thought that Pid already pointed that out.
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 
> 
>       


Re: Tomcat Going down Frequently

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pid,

On 11/16/2010 6:24 PM, Pid wrote:
> On 16/11/2010 21:15, Christopher Schultz wrote:
>> 2. There is no way for a client to check the validity of an HttpSession
>> object before calling getAttribute (or setAttribute for that matter)
>>
>> The HttpSession interface javadoc says "For session that are invalidated
>> or expire, notifications are sent after the session has been invalidated
>> or expired." which means that, at least, the state above is correct.
> 
> The class is calling: StandardSessionFacade.getAttributeNames.
> 
> Shouldn't we see the HttpSession class in the stacktrace, not the
> implementation, if that's what they're calling?  Makes me think the OP
> is interacting with Tomcat internal classes.

No, HttpSession is just an interface, so you'll never see it in a stack
trace. Instead, you see the class that implements that interface.

N.B.: the HttpSession documentation says that IllegalStateException will
be thrown when calling getAttributeNames on an invalidated session. I
guess objects such as the LoginBean should expect that the session might
be invalidated, and catch IllegalStateException in those cases.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzkBHIACgkQ9CaO5/Lv0PBeBACfeAVbuM/C4rAMJTxM72VOwlOr
n58AnAq+E6whVUz6pMmJ1Q2yA2DnzAWJ
=W+ri
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Pid <pi...@pidster.com>.
On 16/11/2010 21:15, Christopher Schultz wrote:
> 2. There is no way for a client to check the validity of an HttpSession
> object before calling getAttribute (or setAttribute for that matter)
> 
> The HttpSession interface javadoc says "For session that are invalidated
> or expire, notifications are sent after the session has been invalidated
> or expired." which means that, at least, the state above is correct.

The class is calling: StandardSessionFacade.getAttributeNames.

Shouldn't we see the HttpSession class in the stacktrace, not the
implementation, if that's what they're calling?  Makes me think the OP
is interacting with Tomcat internal classes.


p

Re: Tomcat Going down Frequently

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

André,

On 11/16/2010 1:21 PM, André Warnier wrote:
> WARNING: Exception processing manager
> org.apache.catalina.session.StandardManager@a20981 background process
> java.lang.IllegalStateException: getAttributeNames: Session already
> invalidated
>         at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1052)
> 
>         at
> org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
> 
>         at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
>         at
> com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)

Just to add a bit more for reference:

>         at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1654)
>         at org.apache.catalina.session.StandardSession.expire(StandardSession.java:756)
>         at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:592)
>         at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:680)

It looks like LoginBean implements HttpSessionBindingListener and it's
being triggered during the expiration of the session.

I actually don't see any reason why this code should cause an exception:

1. The valueUnbound method must be called after the value is
inaccessible via HttpSession.getAttribute
2. There is no way for a client to check the validity of an HttpSession
object before calling getAttribute (or setAttribute for that matter)

The HttpSession interface javadoc says "For session that are invalidated
or expire, notifications are sent after the session has been invalidated
or expired." which means that, at least, the state above is correct.

> The above is a WARNING message, indicating that Tomcat has caught
> something unusual.

The important point there is that it is a WARNING. So, 3 things:

1. This is an exception, not some fatal condition
2. This exception is being caught a logged, so you shouldn't worry too much
3. This is logged as a WARNING, so you shouldn't worry too much


Now, if this exception is actually causing the container to shut itself
down, then it's a serious problem. Here's how you can check:

1. Start Tomcat normally
2. Log into your webapp
3. Log out of your webapp (this should trigger LoginBean.valueUnbound)
4. See if Tomcat shuts down

If Tomcat stays running, then you're okay so far. Now:

1. Change the session timeout from whatever it is (default=30 minutes)
   to 1 minute
2. Start Tomcat normally
3. Log into your webapp
4. Wait 2 minutes (use a stopwatch)
5. Try to do something with your webapp

If Tomcat stays running, then this exception is just a warning and your
stability problems lie elsewhere.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzi9HQACgkQ9CaO5/Lv0PAKUQCgtKUMQlT0Zy75blGbOi5K8Hce
lEMAnR43PzXl79cADDCXZBgejk1e1cT7
=CCSL
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by André Warnier <aw...@ice-sa.com>.
Ok, so now we know roughly what your configuration is like, and there is not something 
obviously wrong with it (to me).

Now the question is back as follows :
In

WARNING: Exception processing manager org.apache.catalina.session.StandardManager@a20981 
background process
java.lang.IllegalStateException: getAttributeNames: Session already invalidated
         at 
org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1052)
         at 
org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
         at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
         at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)
...

The above is a WARNING message, indicating that Tomcat has caught something unusual.
The something unusual being a java class (LoginBean.java:2366) asking for a list of 
attributes of a session which is already invalidated (aka, finished).
That's an application problem.

But this should not by itself cause the whole Tomcat to "go down".
What follows however :

Nov 12, 2010 1:33:09 PM org.apache.coyote.http11.Http11AprProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-9083
Nov 12, 2010 1:33:09 PM org.apache.coyote.ajp.AjpAprProtocol pause
INFO: Pausing Coyote AJP/1.3 on ajp-9011
Nov 12, 2010 1:33:10 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Nov 12, 2010 1:33:11 PM org.apache.coyote.http11.Http11AprProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-9083
Nov 12, 2010 1:33:11 PM org.apache.coyote.ajp.AjpAprProtocol destroy
INFO: Stopping Coyote AJP/1.3 on ajp-9011

are mere INFO-level messages from Tomcat, showing basically that Tomcat is stopping, 
nicely and quietly, as if it had been asked politely to stop.
It is not "going down in flames", it is just cleaning up and stopping nicely, as requested.
So what is asking it to stop ?

Note also that as per the logfile, this orderly stop happens at 1:33:11, which is almost 
*4 minutes* later than the original WARNING message dated 1:29:23.
That is quite an eternity, even by Java standards.

So I am not even sure that the two things are related.




Amol Puglia wrote:
> Hello Andre,
> 
> We are proxying request from apache to tomcat using mod_proxy and mod_proxy_ajp
> 
> Following is the load balancer configuration in apache.
> 
> kindly let me know in case you need further details.
> 
> # Port 80
>    Listen server_name:80
>    #Listen 153.88.86.250:80
>    <VirtualHost _default_:80>
>       ServerName server_name
>        
> 
>       Timeout 10800
>       ProxyTimeout 10800
>       ProxyRequests Off
> 
> 
>        ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID|jsessionid nofailover=On
>        #ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID nofailover=On
> 
>        ProxyPreserveHost On
> 
> 
>        ProxyPass /eMatrix ajp://server_name:8009/eMatrix
> 
>        ProxyPass /eMatrix ajp://server_name:8010/eMatrix
> 
>       ProxyPass /eMatrix ajp://server_name:8011/eMatrix
> 
>       ProxyPass /eMatrix ajp://server_name:9009/eMatrix
> 
>       ProxyPass /eMatrix ajp://server_name:9010/eMatrix
> 
>       ProxyPass /eMatrix ajp://server_name:9011/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:8009/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:8010/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:8011/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:9009/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:9010/eMatrix
> 
>        ProxyPassReverse /eMatrix ajp://server_name:9011/eMatrix
> 
>        <Proxy balancer://cluster>
>          BalancerMember ajp://server_name:8009/eMatrix route=marsprod_rmiserver_1 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:8010/eMatrix route=marsprod_rmiserver_2 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:8011/eMatrix route=marsprod_rmiserver_3 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:9009/eMatrix route=marsprod_rmiserver_4 loadfactor=33 retry=60
>          BalancerMember ajp://server_name:9010/eMatrix route=marsprod_rmiserver_5 loadfactor=33 retry=60
>          #load balancing performed based on number of user requests
>          #ProxySet lbmethod=byrequests
>          # Report server is for Report purpose only so balancing is required now.
>          BalancerMember ajp://server_name:9011/eMatrix route=marsprod_rmiserver_6 loadfactor=33 retry=60
>          ProxySet lbmethod=byrequests
>        </Proxy>
> 
>        #Status page for balancer
> 
>        <Location /balancer>
>        SetHandler balancer-manager
>        Order Deny,Allow
>        Deny from all
>        Allow from all
>       </Location>
> 
>       ProxyStatus On
> 
>       <Location /status>
>       SetHandler server-status
>       Order Deny,Allow
>       Deny from all
>       Allow from all
>       </Location>
> 
>       ErrorLog /opt/web/apache/app/mxora/logs/error.log
> 
> 
> 
>       
>    </VirtualHost>
> # END port 80
> 
> --- On Tue, 11/16/10, André Warnier <aw...@ice-sa.com> wrote:
> 
> From: André Warnier <aw...@ice-sa.com>
> Subject: Re: Tomcat Going down Frequently
> To: "Tomcat Users List" <us...@tomcat.apache.org>
> Date: Tuesday, November 16, 2010, 4:55 PM
> 
> Amol Puglia wrote:
>> Hello Andre,
>>
>> Thanks for the updates. I am not using mod_jk , I am using proxy modules for redirecting request from apache to tomcat.
>>
> 
> Ok, sorry, I confused your post with another one.
> 
> But anyway, your configuration shows a whole lot of proxy modules, many of which do not seem to have any relation with proxying calls to Tomcat. Such as these :
> 
>>> LoadModule proxy_connect_module modules/mod_proxy_connect.so
>>> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
>>> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
> 
> The following /may/ have a relation with the proxying to Tomcat, but which one are you really using ?
> 
>>> LoadModule proxy_http_module modules/mod_proxy_http.so
>>> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
> 
> Usually, people use *either* mod_proxy_http *or* mod_proxy_ajp, so which one is being used ? Can you provide some information about the apache httpd configuration that shows what is being proxied and how ?
> 
> 
>> As you said that there is problem in application code, Is there anything we can point out where exactly is the problem in the code or configuration?
>>
> 
> I thought that Pid already pointed that out.
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 
> 
>       


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Amol Puglia <am...@yahoo.com>.
Hello Andre,

We are proxying request from apache to tomcat using mod_proxy and mod_proxy_ajp

Following is the load balancer configuration in apache.

kindly let me know in case you need further details.

# Port 80
   Listen server_name:80
   #Listen 153.88.86.250:80
   <VirtualHost _default_:80>
      ServerName server_name
       

      Timeout 10800
      ProxyTimeout 10800
      ProxyRequests Off


       ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID|jsessionid nofailover=On
       #ProxyPass /eMatrix balancer://cluster stickysession=JSESSIONID nofailover=On

       ProxyPreserveHost On


       ProxyPass /eMatrix ajp://server_name:8009/eMatrix

       ProxyPass /eMatrix ajp://server_name:8010/eMatrix

      ProxyPass /eMatrix ajp://server_name:8011/eMatrix

      ProxyPass /eMatrix ajp://server_name:9009/eMatrix

      ProxyPass /eMatrix ajp://server_name:9010/eMatrix

      ProxyPass /eMatrix ajp://server_name:9011/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:8009/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:8010/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:8011/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:9009/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:9010/eMatrix

       ProxyPassReverse /eMatrix ajp://server_name:9011/eMatrix

       <Proxy balancer://cluster>
         BalancerMember ajp://server_name:8009/eMatrix route=marsprod_rmiserver_1 loadfactor=33 retry=60
         BalancerMember ajp://server_name:8010/eMatrix route=marsprod_rmiserver_2 loadfactor=33 retry=60
         BalancerMember ajp://server_name:8011/eMatrix route=marsprod_rmiserver_3 loadfactor=33 retry=60
         BalancerMember ajp://server_name:9009/eMatrix route=marsprod_rmiserver_4 loadfactor=33 retry=60
         BalancerMember ajp://server_name:9010/eMatrix route=marsprod_rmiserver_5 loadfactor=33 retry=60
         #load balancing performed based on number of user requests
         #ProxySet lbmethod=byrequests
         # Report server is for Report purpose only so balancing is required now.
         BalancerMember ajp://server_name:9011/eMatrix route=marsprod_rmiserver_6 loadfactor=33 retry=60
         ProxySet lbmethod=byrequests
       </Proxy>

       #Status page for balancer

       <Location /balancer>
       SetHandler balancer-manager
       Order Deny,Allow
       Deny from all
       Allow from all
      </Location>

      ProxyStatus On

      <Location /status>
      SetHandler server-status
      Order Deny,Allow
      Deny from all
      Allow from all
      </Location>

      ErrorLog /opt/web/apache/app/mxora/logs/error.log



      
   </VirtualHost>
# END port 80

--- On Tue, 11/16/10, André Warnier <aw...@ice-sa.com> wrote:

From: André Warnier <aw...@ice-sa.com>
Subject: Re: Tomcat Going down Frequently
To: "Tomcat Users List" <us...@tomcat.apache.org>
Date: Tuesday, November 16, 2010, 4:55 PM

Amol Puglia wrote:
> Hello Andre,
> 
> Thanks for the updates. I am not using mod_jk , I am using proxy modules for redirecting request from apache to tomcat.
> 

Ok, sorry, I confused your post with another one.

But anyway, your configuration shows a whole lot of proxy modules, many of which do not seem to have any relation with proxying calls to Tomcat. Such as these :

>> LoadModule proxy_connect_module modules/mod_proxy_connect.so
>> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
>> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

The following /may/ have a relation with the proxying to Tomcat, but which one are you really using ?

>> LoadModule proxy_http_module modules/mod_proxy_http.so
>> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Usually, people use *either* mod_proxy_http *or* mod_proxy_ajp, so which one is being used ? Can you provide some information about the apache httpd configuration that shows what is being proxied and how ?


> As you said that there is problem in application code, Is there anything we can point out where exactly is the problem in the code or configuration?
> 

I thought that Pid already pointed that out.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org




      

Re: Tomcat Going down Frequently

Posted by André Warnier <aw...@ice-sa.com>.
Amol Puglia wrote:
> Hello Andre,
> 
> Thanks for the updates. I am not using mod_jk , I am using proxy modules for redirecting request from apache to tomcat.
>

Ok, sorry, I confused your post with another one.

But anyway, your configuration shows a whole lot of proxy modules, many of which do not 
seem to have any relation with proxying calls to Tomcat. Such as these :

 >> LoadModule proxy_connect_module modules/mod_proxy_connect.so
 >> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
 >> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

The following /may/ have a relation with the proxying to Tomcat, but which one are you 
really using ?

 >> LoadModule proxy_http_module modules/mod_proxy_http.so
 >> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Usually, people use *either* mod_proxy_http *or* mod_proxy_ajp, so which one is being used 
? Can you provide some information about the apache httpd configuration that shows what is 
being proxied and how ?


> As you said that there is problem in application code, Is there anything we can point out where exactly is the problem in the code or configuration?
> 

I thought that Pid already pointed that out.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Amol Puglia <am...@yahoo.com>.
Hello Andre,

Thanks for the updates. I am not using mod_jk , I am using proxy modules for redirecting request from apache to tomcat.

As you said that there is problem in application code, Is there anything we can point out where exactly is the problem in the code or configuration?

--- On Tue, 11/16/10, André Warnier <aw...@ice-sa.com> wrote:

From: André Warnier <aw...@ice-sa.com>
Subject: Re: Tomcat Going down Frequently
To: "Tomcat Users List" <us...@tomcat.apache.org>
Date: Tuesday, November 16, 2010, 2:54 PM

Amol Puglia wrote:
> Hello Pid,
> 
> Thanks for the updates.It would be great if you could let us know whether the issue is in application server or application.
> 
> Also we are using apache to load balance tomcat instances using following modules.

You most probably are /not/ using all of the following modules.
Just having them in your configuration does not mean that you are actually using them.
If you have them in your configuration, and are not using them, then you are probably wasting quite a bit of memory however.

> 
> LoadModule proxy_module modules/mod_proxy.so
> LoadModule proxy_connect_module modules/mod_proxy_connect.so
> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
> LoadModule proxy_http_module modules/mod_proxy_http.so
> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
> LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
> 
> Is there anything we have to tune configuration on apache,tomcat or application,please suggest.
> 
On the face of it, and considering that you are using mod_jk, my first recommendation as to tuning would be to comment out all of the above.  You probably are not using any of them.

As others have already commented, your problem seems definitely to be in the tomcat application, not in tomcat nor apache httpd.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org




      

Re: Tomcat Going down Frequently

Posted by André Warnier <aw...@ice-sa.com>.
Amol Puglia wrote:
> Hello Pid,
> 
> Thanks for the updates.It would be great if you could let us know whether the issue is in application server or application.
> 
> Also we are using apache to load balance tomcat instances using following modules.

You most probably are /not/ using all of the following modules.
Just having them in your configuration does not mean that you are actually using them.
If you have them in your configuration, and are not using them, then you are probably 
wasting quite a bit of memory however.

> 
> LoadModule proxy_module modules/mod_proxy.so
> LoadModule proxy_connect_module modules/mod_proxy_connect.so
> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
> LoadModule proxy_http_module modules/mod_proxy_http.so
> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
> LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
> 
> Is there anything we have to tune configuration on apache,tomcat or application,please suggest.
> 
On the face of it, and considering that you are using mod_jk, my first recommendation as 
to tuning would be to comment out all of the above.  You probably are not using any of them.

As others have already commented, your problem seems definitely to be in the tomcat 
application, not in tomcat nor apache httpd.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat Going down Frequently

Posted by Pid <pi...@pidster.com>.
On 16/11/2010 07:34, Amol Puglia wrote:
> Hello Pid,
> 
> Thanks for the updates.It would be great if you could let us know whether the issue is in application server or application.

Well, the problem class isn't in an org.apache package, it's in a
com.ericsson package.  Is that your code?

LoginBean.java, line 2366.

There's a lot of code in that file, but you could check to see what's
happening at that line.

In the a line above in that, in the stacktrace, there's a call to
StandardSessionFacade.getAttributeNames

which I'm not sure about, I'd expect to see a call to HttpSession rather
than a call to an internal component of Tomcat.

I think your code is attempting to flush the session clean, without
checking that the session is available to do so (which it isn't).


p


> Also we are using apache to load balance tomcat instances using following modules.
> 
> LoadModule proxy_module modules/mod_proxy.so
> LoadModule proxy_connect_module modules/mod_proxy_connect.so
> LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
> LoadModule proxy_http_module modules/mod_proxy_http.so
> LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
> LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
> 
> Is there anything we have to tune configuration on apache,tomcat or application,please suggest.
> 
> 
> 
> 
> --- On Mon, 11/15/10, Pid <pi...@pidster.com> wrote:
> 
> From: Pid <pi...@pidster.com>
> Subject: Re: Tomcat Going down Frequently
> To: "Tomcat Users List" <us...@tomcat.apache.org>
> Date: Monday, November 15, 2010, 10:04 PM
> 
> On 15/11/2010 11:03, Amol Puglia wrote:
>>          at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
>>          at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
>>          at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)
> 
> The problem is in your HttpSessionBindingListener LoginBean, it appears
> to be operating on the session object after the session has been
> invalidated.
> 
> I don't know whether this could take Tomcat down, unless you've
> included* a System.exit call in a catch - which seems to be popular
> again all of a sudden.
> 
> 
> p
> 
> * which is A Really Bad Idea.
> 
> 
> 
>       


Re: Tomcat Going down Frequently

Posted by Amol Puglia <am...@yahoo.com>.
Hello Pid,

Thanks for the updates.It would be great if you could let us know whether the issue is in application server or application.

Also we are using apache to load balance tomcat instances using following modules.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

Is there anything we have to tune configuration on apache,tomcat or application,please suggest.




--- On Mon, 11/15/10, Pid <pi...@pidster.com> wrote:

From: Pid <pi...@pidster.com>
Subject: Re: Tomcat Going down Frequently
To: "Tomcat Users List" <us...@tomcat.apache.org>
Date: Monday, November 15, 2010, 10:04 PM

On 15/11/2010 11:03, Amol Puglia wrote:
>         at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
>         at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
>         at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)

The problem is in your HttpSessionBindingListener LoginBean, it appears
to be operating on the session object after the session has been
invalidated.

I don't know whether this could take Tomcat down, unless you've
included* a System.exit call in a catch - which seems to be popular
again all of a sudden.


p

* which is A Really Bad Idea.



      

Re: Tomcat Going down Frequently

Posted by Pid <pi...@pidster.com>.
On 15/11/2010 11:03, Amol Puglia wrote:
>         at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
>         at com.ericsson.mars.jspbean.LoginBean.logout(LoginBean.java:2366)
>         at com.ericsson.mars.jspbean.LoginBean.valueUnbound(LoginBean.java:2450)

The problem is in your HttpSessionBindingListener LoginBean, it appears
to be operating on the session object after the session has been
invalidated.

I don't know whether this could take Tomcat down, unless you've
included* a System.exit call in a catch - which seems to be popular
again all of a sudden.


p

* which is A Really Bad Idea.