activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQ-3077) ArraysIndexOutOfBoundsException : -32768 in "BrokerService[xxx] Task" thread
Date Fri, 10 Dec 2010 09:24:00 GMT

     [ https://issues.apache.org/jira/browse/AMQ-3077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Eric updated AMQ-3077:
----------------------


Since I see a lot of "imbrications" of 

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)

perhaps a "short" usage in the BooleanStream.writeBoolean is not enough to manage complexity
of the message sent ?

public void writeBoolean(boolean value) throws IOException {
        if (bytePos == 0) {
            arrayLimit++;
            if (arrayLimit >= data.length) {
                // re-grow the array.
                byte d[] = new byte[data.length * 2];
                System.arraycopy(data, 0, d, 0, data.length);
                data = d;
            }
        }
        if (value) {
            data[arrayPos] |= 0x01 << bytePos;
        }
        bytePos++;
        if (bytePos >= 8) {
            bytePos = 0;
            arrayPos++;
        }
    }


            data[arrayPos] |= 0x01 << bytePos;

arrayPos would become too big and reached 32768 limit of the "short usage" into the BooleanStream
object ? (8 * 32768 bits => 262144 individual informations to send)

We are in a complex network of brokers situation  (that will have to be far, far more complex
for our needs in the future with more than 1000 servers and 4 imbricated networks of brokers)

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.


Mime
View raw message