Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trains or segments stop working at random #66

Open
Flexz9 opened this issue Feb 16, 2024 · 2 comments
Open

Trains or segments stop working at random #66

Flexz9 opened this issue Feb 16, 2024 · 2 comments

Comments

@Flexz9
Copy link

Flexz9 commented Feb 16, 2024

Describe the Bug

Once in a while it stops updating the trains or segments. A restart of the server helps.

Reproduction Steps

  1. Run the server till it fails
  2. Usually within a few hours

Expected Result

Recover from whatever is going wrong? I don't mind to refresh the web page as a user.

Screenshots and Videos

[16Feb2024 17:47:49.548] [DefaultDispatcher-worker-10/DEBUG] [ktor.application/]: 200 OK: GET - /api/signals.rt. Exception class java.io.IOException: Broken pipe]
java.io.IOException: Broken pipe
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62) ~[?:?]
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:76) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[?:?]
	at io.ktor.network.sockets.CIOWriterKt$attachForWritingDirectImpl$1$1.invokeSuspend(CIOWriter.kt:107) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:68) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:347) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2098) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.flushImpl(ByteBufferChannel.kt:186) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.flush(ByteBufferChannel.kt:196) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeAsMuchAsPossible(ByteBufferChannel.kt:3438) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeFully$suspendImpl(ByteBufferChannel.kt:1399) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeFully(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1.loop(Blocking.kt:94) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1$loop$1.invokeSuspend(Blocking.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.jvm.javaio.UnsafeBlockingTrampoline.dispatch(Blocking.kt:313) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:200) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:231) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:201) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter.write(Blocking.kt:120) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:234) ~[?:?]
	at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:313) ~[?:?]
	at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:318) ~[?:?]
	at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:160) ~[?:?]
	at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:248) ~[?:?]
	at littlechasiu.ctm.Server$module$1$10$invokeSuspend$$inlined$respondSSE$1$1$2.emit(Emitters.kt:233) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	Suppressed: java.io.IOException: java.io.IOException: Broken pipe
		at io.ktor.utils.io.jvm.javaio.OutputAdapter.close(Blocking.kt:134) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:347) ~[?:?]
		at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:169) ~[?:?]
		at java.io.OutputStreamWriter.close(OutputStreamWriter.java:252) ~[?:?]
		at kotlin.io.CloseableKt.closeFinally(Closeable.kt:59) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.http.content.WriterContent$writeTo$2.invokeSuspend(WriterContent.kt:25) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	Caused by: java.io.IOException: Broken pipe
		at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:?]
		at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62) ~[?:?]
		at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[?:?]
		at sun.nio.ch.IOUtil.write(IOUtil.java:76) ~[?:?]
		at sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[?:?]
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[?:?]
		at io.ktor.network.sockets.CIOWriterKt$attachForWritingDirectImpl$1$1.invokeSuspend(CIOWriter.kt:107) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:68) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:347) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2098) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flushImpl(ByteBufferChannel.kt:186) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flush(ByteBufferChannel.kt:196) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeAsMuchAsPossible(ByteBufferChannel.kt:3438) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeFully$suspendImpl(ByteBufferChannel.kt:1399) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeFully(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1.loop(Blocking.kt:94) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1$loop$1.invokeSuspend(Blocking.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.UnsafeBlockingTrampoline.dispatch(Blocking.kt:313) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:200) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:231) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:201) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter.write(Blocking.kt:120) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:234) ~[?:?]
		at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:313) ~[?:?]
		at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:318) ~[?:?]
		at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:160) ~[?:?]
		at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:248) ~[?:?]
		at littlechasiu.ctm.Server$module$1$10$invokeSuspend$$inlined$respondSSE$1$1$2.emit(Emitters.kt:233) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		... 8 more
[16Feb2024 17:47:49.548] [DefaultDispatcher-worker-13/DEBUG] [ktor.application/]: 200 OK: GET - /api/trains.rt. Exception class java.io.IOException: Broken pipe]
java.io.IOException: Broken pipe
	at jdk.internal.reflect.GeneratedConstructorAccessor103.newInstance(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
	at io.ktor.utils.io.ExceptionUtilsJvmKt$createConstructor$$inlined$safeCtor$1.invoke(ExceptionUtilsJvm.kt:103) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ExceptionUtilsJvmKt$createConstructor$$inlined$safeCtor$1.invoke(ExceptionUtilsJvm.kt:90) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ExceptionUtilsJvmKt.tryCopyException(ExceptionUtilsJvm.kt:45) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannelKt.rethrowClosed(ByteBufferChannel.kt:2398) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannelKt.access$rethrowClosed(ByteBufferChannel.kt:1) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.setupStateForWrite$ktor_io(ByteBufferChannel.kt:232) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeByte$suspendImpl(ByteBufferChannel.kt:2647) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeByte(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeByte$suspendImpl(ByteBufferChannel.kt:930) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.writeByte(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.http.cio.internals.CharsKt.writeIntHex(Chars.kt:108) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.http.cio.ChunkedTransferEncodingKt.writeChunk-yRinSxo(ChunkedTransferEncoding.kt:162) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.http.cio.ChunkedTransferEncodingKt.encodeChunked(ChunkedTransferEncoding.kt:134) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.http.cio.ChunkedTransferEncodingKt$encodeChunked$3.invokeSuspend(ChunkedTransferEncoding.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:204) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2098) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.flushImpl(ByteBufferChannel.kt:186) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.ByteBufferChannel.flush(ByteBufferChannel.kt:196) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1.loop(Blocking.kt:92) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1$loop$1.invokeSuspend(Blocking.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.jvm.javaio.UnsafeBlockingTrampoline.dispatch(Blocking.kt:313) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:200) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:231) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at io.ktor.utils.io.jvm.javaio.OutputAdapter.flush(Blocking.kt:125) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:320) ~[?:?]
	at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:160) ~[?:?]
	at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:248) ~[?:?]
	at littlechasiu.ctm.Server$module$1$12$invokeSuspend$$inlined$respondSSE$1$1$2.emit(Emitters.kt:233) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	Suppressed: java.io.IOException: java.io.IOException: Broken pipe
		at io.ktor.utils.io.jvm.javaio.OutputAdapter.close(Blocking.kt:134) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:347) ~[?:?]
		at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:169) ~[?:?]
		at java.io.OutputStreamWriter.close(OutputStreamWriter.java:252) ~[?:?]
		at kotlin.io.CloseableKt.closeFinally(Closeable.kt:59) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.http.content.WriterContent$writeTo$2.invokeSuspend(WriterContent.kt:25) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	Caused by: java.io.IOException: Broken pipe
		at jdk.internal.reflect.GeneratedConstructorAccessor103.newInstance(Unknown Source) ~[?:?]
		at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
		at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
		at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
		at io.ktor.utils.io.ExceptionUtilsJvmKt$createConstructor$$inlined$safeCtor$1.invoke(ExceptionUtilsJvm.kt:103) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ExceptionUtilsJvmKt$createConstructor$$inlined$safeCtor$1.invoke(ExceptionUtilsJvm.kt:90) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ExceptionUtilsJvmKt.tryCopyException(ExceptionUtilsJvm.kt:45) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannelKt.rethrowClosed(ByteBufferChannel.kt:2398) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannelKt.access$rethrowClosed(ByteBufferChannel.kt:1) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.setupStateForWrite$ktor_io(ByteBufferChannel.kt:232) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeByte$suspendImpl(ByteBufferChannel.kt:2647) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeByte(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeByte$suspendImpl(ByteBufferChannel.kt:930) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.writeByte(ByteBufferChannel.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.http.cio.internals.CharsKt.writeIntHex(Chars.kt:108) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.http.cio.ChunkedTransferEncodingKt.writeChunk-yRinSxo(ChunkedTransferEncoding.kt:162) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.http.cio.ChunkedTransferEncodingKt.encodeChunked(ChunkedTransferEncoding.kt:134) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.http.cio.ChunkedTransferEncodingKt$encodeChunked$3.invokeSuspend(ChunkedTransferEncoding.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:204) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2098) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flushImpl(ByteBufferChannel.kt:186) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flush(ByteBufferChannel.kt:196) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1.loop(Blocking.kt:92) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1$loop$1.invokeSuspend(Blocking.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.UnsafeBlockingTrampoline.dispatch(Blocking.kt:313) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:200) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:231) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter.flush(Blocking.kt:125) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:320) ~[?:?]
		at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:160) ~[?:?]
		at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:248) ~[?:?]
		at littlechasiu.ctm.Server$module$1$12$invokeSuspend$$inlined$respondSSE$1$1$2.emit(Emitters.kt:233) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		... 8 more
	Caused by: java.io.IOException: Broken pipe
		at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:?]
		at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62) ~[?:?]
		at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[?:?]
		at sun.nio.ch.IOUtil.write(IOUtil.java:76) ~[?:?]
		at sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[?:?]
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[?:?]
		at io.ktor.network.sockets.CIOWriterKt$attachForWritingDirectImpl$1$1.invokeSuspend(CIOWriter.kt:107) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:68) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:347) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2098) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flushImpl(ByteBufferChannel.kt:186) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.ByteBufferChannel.flush(ByteBufferChannel.kt:196) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1.loop(Blocking.kt:92) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter$loop$1$loop$1.invokeSuspend(Blocking.kt) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.UnsafeBlockingTrampoline.dispatch(Blocking.kt:313) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:200) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at io.ktor.utils.io.jvm.javaio.BlockingAdapter.submitAndAwait(Blocking.kt:231) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at io.ktor.utils.io.jvm.javaio.OutputAdapter.flush(Blocking.kt:125) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:320) ~[?:?]
		at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:160) ~[?:?]
		at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:248) ~[?:?]
		at littlechasiu.ctm.Server$module$1$12$invokeSuspend$$inlined$respondSSE$1$1$2.emit(Emitters.kt:233) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
		at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:382) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
		... 8 more
Caused by: java.io.IOException: Broken pipe
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:62) ~[?:?]
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:76) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[?:?]
	at io.ktor.network.sockets.CIOWriterKt$attachForWritingDirectImpl$1$1.invokeSuspend(CIOWriter.kt:107) ~[create-track-map-1.4+mc1.20.1-neoforge.jar%23228!/:1.4]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:68) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:347) ~[kotlinforforge-4.10.0-all.jar%23272!/:?]
	... 26 more
	```
	
I found these in debug.log

### Crash Report or Log

_No response_

### Operating System

Unraid server

### CTM Version

1.4

### Create Version

0.5.1e

### Minecraft Version

1.20.1

### Mod Loader

Forge

### Modloader Version

47.2.20

### Instance Type

Server hosted on vps/dedicated server

### Other Mods

_No response_

### Additional Context

_No response_
@Flexz9
Copy link
Author

Flexz9 commented Feb 17, 2024

Have to test if /ctm reload helps.
If it does an option to run this command on a configurable interval would be fine by me.

@Jan-DT
Copy link

Jan-DT commented Jun 21, 2024

I'm having the same issue, /ctm reload does not fix it for me, though sometimes it randomly starts working again after breaking and re-placing a track in-game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants