Bug 116856 - error on concurrent access to content-center
Summary: error on concurrent access to content-center
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise CMS
Classification: Retired
Component: other
Version: nightly
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: ccm-bugs-list
QA Contact: Jon Orris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-02-25 19:36 UTC by Bryan Che
Modified: 2005-10-31 22:00 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-02-26 15:19:52 UTC
Embargoed:


Attachments (Terms of Use)

Description Bryan Che 2004-02-25 19:36:40 UTC
I see the following error report when athe first access to the content
center admin page (/content/admin) is by concurrent users.  If one
user accesses the page first, there are no problems with subsequent
concurrent access.

-*-*-*-*-*- Begin Error Report -*-*-*-*-*-
-*-*-*- ACS Error Report Code: 127.0.0.1:f1af842:faee2a6c82 -*-*-*-
-*-*-*- Message 1: com.caucho.jsp.JspLineException: Form already set
-*-*-*-
-*-*-*- Message 2: java.lang.IllegalStateException: Form already set
-*-*-*-

-*-*-*- Section: HTTP headers -*-*-*-
Accept: text/html, image/gif, image/jpeg, */*
Accept-Language: en-us
Connection: Keep-Alive
Cookie: JSESSIONID=aDPzHsjvmkqf;
ad_user_login=313227!1172345572416!n+CG0zIz8QnSdtXSJmUSsw==
Host: 172.16.65.125
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)

-*-*-*- Section: Cookies -*-*-*-
JSESSIONID: aDPzHsjvmkqf (expires: -1)
ad_user_login: 313227!1172345572416!n+CG0zIz8QnSdtXSJmUSsw== (expires: -1)

-*-*-*- Section: CCM User -*-*-*-
Party ID: 313227
Email address: cmsuser
Family name: user
Given name: cms
Screen name: null

-*-*-*- Section: Stack trace -*-*-*-
java.lang.IllegalStateException: Form already set
	at com.arsdigita.bebop.form.Widget.setForm(Widget.java:272)
	at com.arsdigita.bebop.form.Widget.register(Widget.java:258)
	at com.arsdigita.bebop.Form$1.act(Form.java:487)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:95)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.Form.traverse(Form.java:490)
	at com.arsdigita.bebop.Form.register(Form.java:501)
	at com.arsdigita.bebop.Page$2.act(Page.java:792)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:95)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.util.Traversal.preorder(Traversal.java:104)
	at com.arsdigita.bebop.Page.finish(Page.java:795)
	at com.arsdigita.bebop.Page.lock(Page.java:813)
	at com.arsdigita.cms.dispatcher.CMSPage.init(CMSPage.java:159)
	at
_packages._content_22dsection._www._admin._index__jsp._jspService(_index__jsp.java:53)
	at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
	at com.caucho.jsp.Page.subservice(Page.java:506)
	at
com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
	at com.caucho.server.http.Invocation.service(Invocation.java:315)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:222)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:103)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:80)
	at
com.arsdigita.cms.ContentSectionServlet.doService(ContentSectionServlet.java:171)
	at
com.arsdigita.web.BaseApplicationServlet$1.excurse(BaseApplicationServlet.java:111)
	at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java:57)
	at
com.arsdigita.web.BaseApplicationServlet.doService(BaseApplicationServlet.java:105)
	at com.arsdigita.web.BaseServlet$1.excurse(BaseServlet.java:176)
	at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java:57)
	at com.arsdigita.web.BaseServlet.internalService(BaseServlet.java:147)
	at com.arsdigita.web.BaseServlet.doGet(BaseServlet.java:272)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
	at com.caucho.server.http.Invocation.service(Invocation.java:315)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:222)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:103)
	at
com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:80)
	at com.arsdigita.web.BaseDispatcher.forward(BaseDispatcher.java:206)
	at com.arsdigita.web.BaseDispatcher.forward(BaseDispatcher.java:190)
	at com.arsdigita.web.BaseDispatcher.dispatch(BaseDispatcher.java:130)
	at
com.arsdigita.web.DispatcherServlet.doService(DispatcherServlet.java:123)
	at com.arsdigita.web.BaseServlet$1.excurse(BaseServlet.java:176)
	at com.arsdigita.kernel.KernelExcursion.run(KernelExcursion.java:57)
	at com.arsdigita.web.BaseServlet.internalService(BaseServlet.java:147)
	at com.arsdigita.web.BaseServlet.doGet(BaseServlet.java:272)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
	at com.caucho.server.http.Invocation.service(Invocation.java:315)
	at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
	at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
	at java.lang.Thread.run(Thread.java:513)


-*-*-*- Section: Servlet attributes -*-*-*-
com.arsdigita.cms.dispatcher.section:
[com.arsdigita.cms.ContentSection:{id=69}]
com.arsdigita.dispatcher.RequestContext:
com.arsdigita.sitenode.SiteNodeRequestContext@ce2f86f
com.arsdigita.dispatcher.RequestValue:
{com.arsdigita.dispatcher.RequestValue@1f4b79b0=null}
com.arsdigita.web.BaseApplicationServlet.application_id: 69
com.arsdigita.web.BaseDispatcher.dispatched: true
com.arsdigita.web.BaseServlet.request_url: /ccm/content/admin/index.jsp
xmlMode: false

-*-*-*- Section: Request summary -*-*-*-
Context path: 
Request URI: /__ccm__/servlet/content-section/admin/index.jsp
Query string: app-id=69
Method: GET
Remote user: null

-*-*-*- Section: System properties -*-*-*-
ccm.home: /var/ccm-devel/web/root/cms-dev
com.arsdigita.util.Assert.enabled: false
file.encoding: ISO-8859-1
file.encoding.pkg: sun.io
file.separator: /
invokedviajava: 
java.assistive: ON
java.awt.fonts: 
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
java.awt.printerjob: sun.awt.motif.PSPrinterJob
java.class.path:
:/opt/apps/oracle/product/9.2.0/jdbc/lib/classes12.zip:/usr/share/java/servletapi4.jar:/opt/apps/oracle/product/9.2.0/jdbc/lib/classes12.zip:/opt/resin/2.1.12/lib/resin.jar:/opt/resin/2.1.12/lib/jdbc2_0-stdext.jar:/opt/resin/2.1.12/lib/jta_101.jar:/opt/resin/2.1.12/lib/jndi.jar:/opt/resin/2.1.12/lib/dom.jar:/opt/resin/2.1.12/lib/sax.jar:/opt/resin/2.1.12/lib/jaxp.jar:/opt/resin/2.1.12/lib/jmx.jar:/opt/resin/2.1.12/lib/webutil.jar:/opt/resin/2.1.12/lib/jdbc-mysql.jar:/opt/IBMJava2-131/lib/tools.jar:/opt/IBMJava2-131/jre/lib/rt.jar:/opt/resin/2.1.12/lib/jsdk23.jar
java.class.version: 46.0
java.compiler: jitc
java.ext.dirs:
/opt/IBMJava2-131/jre/lib/ext:/opt/IBMJava2-131/lib/ext:/var/ccm-devel/web/root/cms-dev/webapps/WEB-INF/system:/usr/share/ccm-tools/lib/security
java.fullversion: J2RE 1.3.1 IBM build cxia32131-20030618 (JIT
enabled: jitc)
java.home: /opt/IBMJava2-131/jre
java.io.tmpdir: /tmp
java.library.path:
/opt/IBMJava2-131/jre/bin:/opt/IBMJava2-131/jre/bin/classic:/opt/apps/oracle/product/9.2.0/lib:/opt/apps/oracle/product/9.2.0/ctx/lib:/usr/lib:/usr/local/lib:/opt/apps/oracle/product/9.2.0/JRE/lib/linux/native_threads:/opt/resin/2.1.12/libexec:/usr/lib
java.naming.factory.initial: com.caucho.naming.InitialContextFactoryImpl
java.naming.factory.url.pkgs: com.caucho.naming
java.runtime.name: Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version: 1.3.1
java.specification.name: Java Platform API Specification
java.specification.vendor: Sun Microsystems Inc.
java.specification.version: 1.3
java.vendor: IBM Corporation
java.vendor.url: http://www.ibm.com/
java.vendor.url.bug: 
java.version: 1.3.1
java.vm.info: J2RE 1.3.1 IBM build cxia32131-20030618 (JIT enabled: jitc)
java.vm.name: Classic VM
java.vm.specification.name: Java Virtual Machine Specification
java.vm.specification.vendor: Sun Microsystems Inc.
java.vm.specification.version: 1.0
java.vm.vendor: IBM Corporation
java.vm.version: 1.3.1
javax.xml.parsers.DocumentBuilderFactory:
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory:
org.apache.xerces.jaxp.SAXParserFactoryImpl
javax.xml.transform.TransformerFactory:
com.icl.saxon.TransformerFactoryImpl
line.separator: 

log4j.configuration:
file:///var/ccm-devel/web/root/cms-dev/conf/log4j.properties
org.xml.sax.driver: com.caucho.xml.Xml
os.arch: x86
os.name: Linux
os.version: 2.4.9-e.27smp
path.separator: :
resin.home: /opt/resin/2.1.12
sun.boot.class.path:
/opt/IBMJava2-131/jre/lib/rt.jar:/opt/IBMJava2-131/jre/lib/i18n.jar:/opt/IBMJava2-131/jre/classes
sun.boot.library.path: /opt/IBMJava2-131/jre/bin
sun.io.unicode.encoding: UnicodeLittle
user.dir: /var/local/resin/2.1.12
user.home: /root
user.language: en
user.name: root
user.region: US
user.timezone: America/New_York
-*-*-*-*-*- End Error Report -*-*-*-*-*-

Comment 1 Daniel Berrangé 2004-02-26 10:46:58 UTC
This is probably because 'init' method in CMSPage.java isn't marked
synchronized, so two threads could easily enter the 'lock' method
concurrently causing the Kaboom.

   public void init() {
        s_log.debug("Initializing the page");

        if (!isLocked()) {
            s_log.debug("The page hasn't been locked; locking it now");

            lock();
        }
    }



Comment 2 Bryan Che 2004-02-26 15:19:52 UTC
fixed and tested at changelist 40797


Note You need to log in before you can comment on or make changes to this bug.