SIGSEGV в хронике очереди 4.5.19

Что может привести к хронической очереди в Segfault? Я предполагаю, что где-то пропустил конфигурацию. У меня есть очередь ReadOnly Chronicle, созданная следующим образом:

ChronicleQueue readQueue =  SingleChronicleQueueBuilder.binary (readBasePath).readOnly (true).build ();

Сегмент JVM 2016-12-31T00:00:00, когда я предполагаю, что файл очереди был зациклен. Это среда:

Очередь хроники 4.5.19 JVM OpenJDK 1.8.0_112-b16 Ubuntu 14.04.3 LTS Linux 3.13.0-74

Вот трассировка стека:

> V  [libjvm.so+0xa08d97]  
J 875  sun.misc.Unsafe.compareAndSwapInt(Ljava/lang/Object;JII)Z (0 bytes) @ 0x00007fde1d328c46 [0x00007fde1d328b80+0xc6]
j  net.openhft.chronicle.core.UnsafeMemory.compareAndSwapInt(JII)Z+8
j  net.openhft.chronicle.bytes.NativeBytesStore.compareAndSwapInt(JII)Z+17
j  net.openhft.chronicle.bytes.AbstractBytes.compareAndSwapInt(JII)Z+16
j  net.openhft.chronicle.wire.AbstractWire.writeEndOfWire(JLjava/util/concurrent/TimeUnit;J)V+32
j  net.openhft.chronicle.queue.impl.single.SingleChronicleQueueStore.writeEOF(Lnet/openhft/chronicle/wire/Wire;J)V+9
j  net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.checkMoveToNextCycle(ZLnet/openhft/chronicle/bytes/Bytes;)Z+43
j  net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.inACycle(Z)Z+176
j  net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.next(Z)Z+12
j  net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.readingDocument(Z)Lnet/openhft/chronicle/wire/DocumentContext;+6
j  net.openhft.chronicle.queue.ExcerptTailer.readingDocument()Lnet/openhft/chronicle/wire/DocumentContext;+2
j  net.openhft.chronicle.wire.MarshallableIn.readDocument(Lnet/openhft/chronicle/wire/ReadMarshallable;)Z+1

1 ответ

Решение

Это похоже на состояние гонки. Когда отображение памяти действительно освобождено, к нему нельзя получить доступ, или это вызовет ошибку сегментации. Причина, по которой я подозреваю, состоит в том, что он должен быть свободен при каждом цикле.

Я добавил проблему https://github.com/OpenHFT/Chronicle-Queue/issues/319

Другие вопросы по тегам