Многоузловая конфигурация OrientDB: проблемы с hazelcast

У меня есть кластер OrienDB 2.1.4 из 3 узлов с базовой конфигурацией. Единственное изменение в hazelcast.xml, которое я сделал, это замена многоадресной рассылки неявным списком хостов tcp-ip.

После тяжелого запроса к БД (выбрать без объединений, около 300 тыс. строк в результирующем наборе) OrientDB перестает отвечать на попытки сетевого подключения из приложения (OrientDB Studio все еще работает), в логах постоянно появляются следующие исключения:

на главном узле

2016-02-24 10:02:17:647 INFO  [10.10.10.124]:2434 [zertodb] [3.3.5] Remaining migration tasks in queue => 1 [InternalPartitionService][10.10.10.124]:2434 [zertodb] [3.3.5] Received data format is invalid. (An old version of Hazelcast may be running here.)
com.hazelcast.nio.serialization.HazelcastSerializationException: java.io.UTFDataFormatException: Length check failed, maybe broken bytestream or wrong stream position
        at com.hazelcast.nio.serialization.SerializationServiceImpl.handleException(SerializationServiceImpl.java:354)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:341)
        at com.hazelcast.nio.serialization.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:454)
        at com.hazelcast.cluster.MulticastService.receive(MulticastService.java:155)
        at com.hazelcast.cluster.MulticastService.run(MulticastService.java:113)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.UTFDataFormatException: Length check failed, maybe broken bytestream or wrong stream position
        at com.hazelcast.nio.UTFEncoderDecoder.readUTF0(UTFEncoderDecoder.java:505)
        at com.hazelcast.nio.UTFEncoderDecoder.readUTF(UTFEncoderDecoder.java:77)
        at com.hazelcast.nio.serialization.ByteArrayObjectDataInput.readUTF(ByteArrayObjectDataInput.java:450)
        at com.hazelcast.cluster.ConfigCheck.readData(ConfigCheck.java:219)
        at com.hazelcast.cluster.JoinMessage.readData(JoinMessage.java:80)
        at com.hazelcast.cluster.JoinRequest.readData(JoinRequest.java:64)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:111)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:39)
        at com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:44)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:335)
        ... 4 more

на других узлах:

[10.10.10.194]:2434 [zertodb] [3.3.5] Received data format is invalid. (An old version of Hazelcast may be running here.)
com.hazelcast.nio.serialization.HazelcastSerializationException: java.io.StreamCorruptedException: invalid type code: 00
        at com.hazelcast.nio.serialization.SerializationServiceImpl.handleException(SerializationServiceImpl.java:354)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:341)
        at com.hazelcast.nio.serialization.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:454)
        at com.hazelcast.cluster.ConfigCheck.readData(ConfigCheck.java:215)
        at com.hazelcast.cluster.JoinMessage.readData(JoinMessage.java:80)
        at com.hazelcast.cluster.JoinRequest.readData(JoinRequest.java:64)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:111)
        at com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:39)
        at com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:44)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:335)
        at com.hazelcast.nio.serialization.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:454)
        at com.hazelcast.cluster.MulticastService.receive(MulticastService.java:155)
        at com.hazelcast.cluster.MulticastService.run(MulticastService.java:113)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.StreamCorruptedException: invalid type code: 00
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1379)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
        at com.hazelcast.nio.serialization.DefaultSerializers$ObjectSerializer.read(DefaultSerializers.java:196)
        at com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:44)
        at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:335)
        ... 12 more

Тот же запрос с меньшим набором результатов работает нормально.


person Tim    schedule 24.02.2016    source источник
comment
Вы уже пытались обновиться до последнего исправления? ОриентДб v2.1.11? Мы также обновили Hazelcast для использования v3.5.3.   -  person Lvca    schedule 24.02.2016


Ответы (1)


Я нашел эту проблему https://github.com/hazelcast/hazelcast/issues/4327 о вашей проблеме с hazelcast.

Надеюсь, поможет.

person Alessandro Rota    schedule 24.02.2016