Tôi có một dự án về công nghệ công cụ ứng dụng google sử dụng kho dữ liệu, được viết bằng py38
Để phát triển cục bộ, tôi sử dụng dev_appserver.py và cũng là trình giả lập kho dữ liệu google (https://cloud.google.com/sdk/gcloud/reference/beta/emulators/datastore/start)
Dự án đã phát triển thành công trong hơn 3 tháng - trình giả lập kho dữ liệu cục bộ đã hoạt động. Nó cũng hoạt động ngày hôm qua. Nhưng hôm nay tôi gặp sự cố Lỗi luồng khi cố truy cập cơ sở dữ liệu. Tôi đã không thay đổi bất kỳ cài đặt nào, vì vậy nó phải hoạt động và không gây ra sự cố.
Bạn có thể xem truy nguyên đầy đủ bên dưới
io.grpc.netty.NettyServerHandler onStreamError
[kho dữ liệu] CẢNH BÁO: Lỗi luồng
[kho dữ liệu] io.netty.handler.codec.http2.Http2Exception$StreamException: Luồng bị đóng trước khi quá trình ghi có thể diễn ra
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2Exception.streamError(Http2Exception.java:149)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController$FlowState.cancel(DefaultHttp2RemoteFlowController.java:480)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2RemoteFlowController$1.onStreamClosed(DefaultHttp2RemoteFlowController.java:104)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2Connection.notifyClosed(DefaultHttp2Connection.java:356)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams.removeFromActiveStreams(DefaultHttp2Connection.java:1000)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2Connection$ActiveStreams.deactivate(DefaultHttp2Connection.java:956)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2Connection$DefaultStream.close(DefaultHttp2Connection.java:512)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2Connection$DefaultStream.close(DefaultHttp2Connection.java:518)
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2ConnectionHandler.closeStream(Http2ConnectionHandler.java:589)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onRstStreamRead(DefaultHttp2ConnectionDecoder.java:352)
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onRstStreamRead(Http2InboundFrameLogger.java:80)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2FrameReader.readRstStreamFrame(DefaultHttp2FrameReader.java:516)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2FrameReader. processPayloadState(DefaultHttp2FrameReader.java:260)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41)
[kho dữ liệu] tại io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:118)
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:390)
[kho dữ liệu] tại io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450)
[kho dữ liệu] tại io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
[kho dữ liệu] tại io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
[kho dữ liệu] tại io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[kho dữ liệu] tại io.gapi.emulators.netty.HttpVersionRoutingHandler.channelRead(HttpVersionRoutingHandler.java:103)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[kho dữ liệu] tại io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[kho dữ liệu] tại io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[kho dữ liệu] tại io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[kho dữ liệu] tại io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
[kho dữ liệu] tại io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
[kho dữ liệu] tại io.netty.channel.nio.NioEventLoop. processSelectedKey(NioEventLoop.java:656)
[kho dữ liệu] tại io.netty.channel.nio.NioEventLoop. processSelectedKeysOptimized(NioEventLoop.java:591)
[kho dữ liệu] tại io.netty.channel.nio.NioEventLoop. processSelectedKeys(NioEventLoop.java:508)
[kho dữ liệu] tại io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470)
[kho dữ liệu] tại io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
[kho dữ liệu] tại java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[kho dữ liệu] tại java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[kho dữ liệu] tại java.base/java.lang.Thread.run(Thread.java:834)
Trình giả lập kho dữ liệu đang chạy trên localhost:8081. Trong ứng dụng công cụ ứng dụng, các biến cho kết nối được đặt trong quá trình phát triển cục bộ. Bản thân ứng dụng web chạy trên localhost:8080.
Như tôi đã mô tả ở trên, tôi không thay đổi gì cả - nó chỉ ngừng hoạt động