gpt4 book ai didi

JxBrowser - 渲染 channel 已经关闭 - ipc 日志 : OnRenderViewGoneMessage

转载 作者:行者123 更新时间:2023-12-04 15:49:38 25 4
gpt4 key购买 nike

我有一个使用 JxBrowser (jxbrowser-6.18) 的 Swing 编写的 Java 应用程序。

我们正在加载本地 url ( http://localhost:8000/someLink.html ),然后在浏览器上运行一些自定义 js。在某些时候,java 代码中会抛出以下异常:

CERROR 2019-01-25 07:38:29,801 - Exception in thread "AWT-EventQueue-0" 
CERROR 2019-01-25 07:38:29,801 - java.lang.IllegalStateException: Channel stream was closed before response has been received.
CERROR 2019-01-25 07:38:29,804 - at com.teamdev.jxbrowser.chromium.internal.ipc.SocketChannel.post(SourceFile:216)
CERROR 2019-01-25 07:38:29,804 - at com.teamdev.jxbrowser.chromium.internal.RenderChannelAccessor.post(SourceFile:67)
CERROR 2019-01-25 07:38:29,805 - at com.teamdev.jxbrowser.chromium.Browser.executeJavaScriptAndReturnValue(SourceFile:2134)
CERROR 2019-01-25 07:38:29,805 - at com.teamdev.jxbrowser.chromium.Browser.executeJavaScriptAndReturnValue(SourceFile:2077)

ERROR 2019-01-25 07:38:29,842 - Render channel is already closed.
java.lang.IllegalStateException: Render channel is already closed.
at com.teamdev.jxbrowser.chromium.internal.RenderChannelAccessor.a(SourceFile:72)
at com.teamdev.jxbrowser.chromium.internal.RenderChannelAccessor.post(SourceFile:66)
at com.teamdev.jxbrowser.chromium.Browser.executeJavaScriptAndReturnValue(SourceFile:2134)
at com.teamdev.jxbrowser.chromium.Browser.executeJavaScriptAndReturnValue(SourceFile:2077)

然后我检查了 ipc 日志,寻找在 07:38:29 附近发生的事件

#creating browser 
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.Server start
INFO: Shared Memory Name: TDB2-24864
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.SharedMemory <init>
INFO: IPC connection has been established. Connection ID: 13818240
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnHelloMessage{type=OnHello, uid=4, message='cid:0,bid:0,type:Browser', null
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.Server a
INFO: Channel has been accepted: SocketChannel{cid=0, bid=0, type=Browser}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.IPC$b onChannelConnected
INFO: Channel is connected: SocketChannel{cid=0, bid=0, type=Browser}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelWriter run
FINE: WRITE: LoadURLMessage{type=LoadURL, uid=9, url='about:blank', frameId=-1, extraHeaders='null', postData='null', SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnRenderViewCreatedMessage{type=OnRenderViewCreated, uid=5, renderProcessId=3, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnFrameCreatedMessage{type=OnFrameCreated, uid=6, parentFrameId=-1, frameId=2, isMainFrame=true, frameName='', SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.Server start
INFO: Shared Memory Name: TDB3-24864
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.SharedMemory <init>
INFO: IPC connection has been established. Connection ID: 13816000
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnHelloMessage{type=OnHello, uid=7, message='cid:0,bid:0,type:Render', null
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.Server a
INFO: Channel has been accepted: SocketChannel{cid=0, bid=0, type=Render}
Jan 25, 2019 7:36:50 AM com.teamdev.jxbrowser.chromium.internal.ipc.IPC$b onChannelConnected
INFO: Channel is connected: SocketChannel{cid=0, bid=0, type=Render}


#loading custom url, executing some javascript, ping messages...
#last messages with cid=0, bid=0 before 07:38:29

Jan 25, 2019 7:37:48 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelWriter run
FINE: WRITE: PingMessage{type=Ping, uid=420, alive=false, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:37:48 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: PingMessage{type=Ping, uid=420, alive=true, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:37:48 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelWriter run
FINE: WRITE: GetFrameIdMessage{type=GetFrameId, uid=422, frameId=-1, result=0, SocketInfo{cid=0, bid=0, channelType=Render}

[...]

Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnRenderViewGoneMessage{type=OnRenderViewGone, uid=388, terminationStatus=6, errorCode=-536870904, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnFrameDeletedMessage{type=OnFrameDeleted, uid=389, parentFrameId=2, frameId=4, isMainFrame=false, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnFrameDeletedMessage{type=OnFrameDeleted, uid=390, parentFrameId=2, frameId=5, isMainFrame=false, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnFrameDeletedMessage{type=OnFrameDeleted, uid=391, parentFrameId=2, frameId=6, isMainFrame=false, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.MemoryChannelReader a
FINE: READ: OnFrameDeletedMessage{type=OnFrameDeleted, uid=392, parentFrameId=-1, frameId=2, isMainFrame=true, SocketInfo{cid=0, bid=0, channelType=Browser}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.Server b
INFO: Channel has been disconnected: SocketChannel{cid=0, bid=0, type=Render}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.IPC$b onChannelDisconnected
INFO: Channel is disconnected: SocketChannel{cid=0, bid=0, type=Render}
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.SharedMemory close
INFO: IPC connection has been closed. Connection ID: 13816000
Jan 25, 2019 7:38:29 AM com.teamdev.jxbrowser.chromium.internal.ipc.SharedMemory close
INFO: Pending IPC connections: 4

正如我们从日志中看到的,渲染 channel 在某个时间点关闭。

OnRenderViewGone - terminationStatus=6, errorCode=-536870904

如果您有任何想法我应该看哪个方向或者错误代码或终止状态是什么意思 - 请告诉我。我在互联网上进行了搜索,但找不到任何有用的信息。

请注意,我未能重现该问题,因此如果您对我如何重现它有任何想法,请务必告诉我。

更新 1:您可以在此处找到故障转储文件:https://www.dropbox.com/s/yx86cfhj5rl2eye/chromium-renderer-2019-Jan-25-07-38-17.dmp

最佳答案

1) 如果您尝试访问已处置的浏览器实例,您将得到此异常。例如,如果您使用 Browser.dispose() 方法处理一个 Browser 实例,然后尝试调用它的 Browser.loadURL() 方法,您将收到此 IllegalStateException 错误信息。请确保在您的 Java 代码中您没有使用已经处置的浏览器实例。如果您在不同的线程中使用同一个 Browser 实例,那么请确保您没有在一个线程中释放它,而在另一个线程中使用已经释放的 Browser 实例。

要检查 Browser 实例是否已释放,您可以使用 Browser.isDisposed() 方法。

2) 由于 Chromium 引擎中的问题,浏览器实例被意外处置。默认情况下,在 Windows 平台上,当 Chromium 引擎崩溃时,JxBrowser 会生成 jxbrowser-chromium.dmp 故障转储文件并将其存储在 %localappdata%\JxBrowser\目录中(例如 c:\users\\appdata\local\JxBrowser\jxbrowser - Chrome .dmp)。请检查此位置并与我共享您使用一种在线文件共享服务(如 Google Drive、Dropbox 等)看到的所有故障转储文件。查看 tutorials描述了如何在不同平台上获取故障转储文件。

3) 正如我所见,您使用的是 JxBrowser 6.18 版本。我建议您将库更新到 6.22.2,因为最新版本包含许多新功能、更新的 Chromium 引擎和大量稳定性修复程序,包括与渲染进程的连接丢失时的修复程序。

关于JxBrowser - 渲染 channel 已经关闭 - ipc 日志 : OnRenderViewGoneMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54403905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com