Return-Path: Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: (qmail 28669 invoked from network); 16 Dec 2010 15:43:24 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Dec 2010 15:43:24 -0000 Received: (qmail 48805 invoked by uid 500); 16 Dec 2010 15:43:24 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 48564 invoked by uid 500); 16 Dec 2010 15:43:24 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 48547 invoked by uid 99); 16 Dec 2010 15:43:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Dec 2010 15:43:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Dec 2010 15:43:22 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id oBGFh1Bu007620 for ; Thu, 16 Dec 2010 15:43:02 GMT Message-ID: <26673641.159621292514181917.JavaMail.jira@thor> Date: Thu, 16 Dec 2010 10:43:01 -0500 (EST) From: "Eric (JIRA)" To: dev@activemq.apache.org Subject: [jira] Commented: (AMQ-3077) ArraysIndexOutOfBoundsException : -32768 in "BrokerService[xxx] Task" thread In-Reply-To: <6587681.33221291884842015.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/AMQ-3077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12972117#action_12972117 ] Eric commented on AMQ-3077: --------------------------- mmmhhh. I just added this into openwire/v6/BrokerInfoMarshaller.java public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { super.tightUnmarshal(wireFormat, o, dataIn, bs); BrokerInfo info = (BrokerInfo)o; info.setBrokerId((org.apache.activemq.command.BrokerId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); info.setBrokerURL(tightUnmarshalString(dataIn, bs)); if (bs.readBoolean()) { short size = dataIn.readShort(); org.apache.activemq.command.BrokerInfo value[] = new org.apache.activemq.command.BrokerInfo[size]; for( int i=0; i < size; i++ ) { System.out.println("Nouveau sous-niveau : i = " + (i+1) + "/(size = " + size + ")"); value[i] = (org.apache.activemq.command.BrokerInfo) tightUnmarsalNestedObject(wireFormat,dataIn, bs); System.out.println("Fin du sous-niveau : i = " + (i+1) + "/(size = " + size + ")"); } info.setPeerBrokerInfos(value); } else { info.setPeerBrokerInfos(null); } /* Eric Vincent remplacement 3 lignes a la place de la ligne suivante */ String brokerName = tightUnmarshalString(dataIn, bs); System.out.println("BrokerInfo / BrokerName = " + brokerName); info.setBrokerName(brokerName); /* Eric Vincent info.setBrokerName(tightUnmarshalString(dataIn, bs)); */ info.setSlaveBroker(bs.readBoolean()); info.setMasterBroker(bs.readBoolean()); info.setFaultTolerantConfiguration(bs.readBoolean()); info.setDuplexConnection(bs.readBoolean()); info.setNetworkConnection(bs.readBoolean()); info.setConnectionId(tightUnmarshalLong(wireFormat, dataIn, bs)); info.setBrokerUploadUrl(tightUnmarshalString(dataIn, bs)); info.setNetworkProperties(tightUnmarshalString(dataIn, bs)); } And you will find in the log file I put into this thread, what I get with no more than 9 embedded brokers (4 sibBusModule, 1 busSupervisor, 2 servers) on 4 servers (td0sib[01,02][s,v] that are connected togethers with different network of brokers or direct connections. I think that the current algorithm (without any level constraint) is not good at all for ActiveMQ global scalability. I will try to change something, but I don't know exactly why it is necessary that each broker knows the global connection hierarchy beyond the first level... And when there are loops, I don't know what could happen .... Eric-AWL > ArraysIndexOutOfBoundsException : -32768 in "BrokerService[xxx] Task" thread > ---------------------------------------------------------------------------- > > Key: AMQ-3077 > URL: https://issues.apache.org/jira/browse/AMQ-3077 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.4.0, 5.4.1 > Environment: Linux, Java 6, Fuse Message Brokers 5.4.0-1 or 5.4.1-1 > Reporter: Eric > > Exception in thread "BrokerService[SUP-tterdp31v] Task" java.lang.ArrayIndexOutOfBoundsException: -32767 > at org.apache.activemq.openwire.BooleanStream.writeBoolean(BooleanStream.java:54) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:377) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.tightMarshalNestedObject1(OpenWireFormat.java:397) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalNestedObject1(BaseDataStreamMarshaller.java:131) > at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.tightMarshalObjectArray1(BaseDataStreamMarshaller.java:357) > at org.apache.activemq.openwire.v6.BrokerInfoMarshaller.tightMarshal1(BrokerInfoMarshaller.java:106) > at org.apache.activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:228) > at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:181) > at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:255) > at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:85) > at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:104) > at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40) > at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1249) > at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:810) > at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:846) > at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122) > at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > Today this exception is not written in ActiveMQ logs but on the standard output. > It seems that happens when network of brokers connections are stopped, but I'm not sure at all. (the number of "bridge to ... stopped" seems to be the same as the number of Exceptions detected) > So I need to dig into this problem to be more precise. > Eric-AWL -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.