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

Deadlock with js executor thread #915

Open
RuralHunter opened this issue Jan 17, 2025 · 1 comment
Open

Deadlock with js executor thread #915

RuralHunter opened this issue Jan 17, 2025 · 1 comment

Comments

@RuralHunter
Copy link
Contributor

I got a deadlock issue when opening a web page. It is hard to reproduce. Anyway this is the stack trace of the deadlock:

=============================
"spidertask-executor":
  waiting to lock monitor 0x00007ff6f816a370 (object 0x00000006d0449b10, a org.htmlunit.html.HtmlPage),
  which is held by "JS executor for org.htmlunit.WebClient@689a6d4f"

"JS executor for org.htmlunit.WebClient@689a6d4f":
  waiting to lock monitor 0x00007ff7341598a0 (object 0x00000006e005e550, a org.htmlunit.html.HtmlPage),
  which is held by "spidertask-executor"

Java stack information for the threads listed above:
===================================================
"spidertask-executor":
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:886)
	- waiting to lock <0x00000006d0449b10> (a org.htmlunit.html.HtmlPage)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:793)
	at org.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:109)
	at org.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1039)
	at org.htmlunit.html.ScriptElementSupport.executeScriptIfNeeded(ScriptElementSupport.java:191)
	at org.htmlunit.html.ScriptElementSupport$1.execute(ScriptElementSupport.java:112)
	at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:135)
	at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:511)
	at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:285)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:457)
	at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1241)
	at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1185)
	at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
	at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:265)
	at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3231)
	at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2120)
	at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:932)
	at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
	at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
	at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:755)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parse(HtmlUnitNekoHtmlParser.java:196)
	at org.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:300)
	at org.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:219)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:681)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:573)
	at org.htmlunit.WebClient.getPage(WebClient.java:493)
	at org.htmlunit.WebClient.getPage(WebClient.java:402)
	at org.htmlunit.html.BaseFrameElement.loadInnerPageIfPossible(BaseFrameElement.java:211)
	at org.htmlunit.html.BaseFrameElement.loadInnerPage(BaseFrameElement.java:121)
	at org.htmlunit.html.BaseFrameElement$2.execute(BaseFrameElement.java:460)
	at org.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:951)
	at org.htmlunit.javascript.JavaScriptEngine.processPostponedActions(JavaScriptEngine.java:1049)
	at org.htmlunit.html.ScriptElementSupport.onAllChildrenAddedToPage(ScriptElementSupport.java:137)
	at org.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:192)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:511)
	at org.htmlunit.cyberneko.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:285)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.endElement(HtmlUnitNekoDOMBuilder.java:457)
	at org.htmlunit.cyberneko.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1241)
	at org.htmlunit.cyberneko.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1185)
	at org.htmlunit.cyberneko.filters.DefaultFilter.endElement(DefaultFilter.java:168)
	at org.htmlunit.cyberneko.filters.NamespaceBinder.endElement(NamespaceBinder.java:265)
	at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3231)
	at org.htmlunit.cyberneko.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2120)
	at org.htmlunit.cyberneko.HTMLScanner.scanDocument(HTMLScanner.java:932)
	at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:336)
	at org.htmlunit.cyberneko.HTMLConfiguration.parse(HTMLConfiguration.java:294)
	at org.htmlunit.cyberneko.xerces.parsers.AbstractXMLDocumentParser.parse(AbstractXMLDocumentParser.java:80)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoDOMBuilder.parse(HtmlUnitNekoDOMBuilder.java:755)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parseFragment(HtmlUnitNekoHtmlParser.java:147)
	at org.htmlunit.html.parser.neko.HtmlUnitNekoHtmlParser.parseFragment(HtmlUnitNekoHtmlParser.java:95)
	at org.htmlunit.html.DomNode.parseHtmlSnippet(DomNode.java:1123)
	at org.htmlunit.html.DomElement.setInnerHtml(DomElement.java:1680)
	at org.htmlunit.javascript.host.Element.setInnerHTML(Element.java:888)
	at jdk.internal.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17-ea/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@17-ea/Method.java:566)
	at org.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:221)
	at org.htmlunit.corejs.javascript.AccessorSlot$MemberBoxSetter.setValue(AccessorSlot.java:202)
	at org.htmlunit.corejs.javascript.AccessorSlot.setValue(AccessorSlot.java:89)
	at org.htmlunit.corejs.javascript.ScriptableObject.putImpl(ScriptableObject.java:2633)
	at org.htmlunit.corejs.javascript.ScriptableObject.putImpl(ScriptableObject.java:2588)
	at org.htmlunit.corejs.javascript.ScriptableObject.put(ScriptableObject.java:300)
	at org.htmlunit.javascript.HtmlUnitScriptable.put(HtmlUnitScriptable.java:111)
	at org.htmlunit.corejs.javascript.ScriptableObject.putProperty(ScriptableObject.java:2315)
	at org.htmlunit.corejs.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1894)
	at org.htmlunit.corejs.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1890)
	at org.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1666)
	at org.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1139)
	at org.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:91)
	at org.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:395)
	at org.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:300)
	at org.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4278)
	at org.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:839)
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:890)
	- locked <0x00000006e005e550> (a org.htmlunit.html.HtmlPage)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:846)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:814)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2568)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2561)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeEventListeners(EventListenersContainer.java:345)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeAtTargetListeners(EventListenersContainer.java:382)
	at org.htmlunit.javascript.host.event.EventTarget.fireEvent(EventTarget.java:171)
	at org.htmlunit.html.HtmlPage.lambda$executeEventHandlersIfNeeded$1(HtmlPage.java:1273)
	at org.htmlunit.html.HtmlPage$$Lambda$460/0x000000080179c0c0.run(Unknown Source)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callSecured(JavaScriptEngine.java:751)
	at org.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1273)
	at org.htmlunit.html.HtmlPage.initialize(HtmlPage.java:272)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:701)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:573)
	at org.htmlunit.WebClient.getPage(WebClient.java:493)
	at org.htmlunit.WebClient.getPage(WebClient.java:402)
	at org.htmlunit.WebClient.getPage(WebClient.java:536)
	at org.htmlunit.WebClient.getPage(WebClient.java:518)
	at com.mycom.spider.TaskExecutor(...)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17-ea/ThreadPoolExecutor.java:1135)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17-ea/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17-ea/Thread.java:831)
"JS executor for org.htmlunit.WebClient@689a6d4f":
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:886)
	- waiting to lock <0x00000006e005e550> (a org.htmlunit.html.HtmlPage)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:846)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:814)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2568)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2561)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeEventListeners(EventListenersContainer.java:345)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeAtTargetListeners(EventListenersContainer.java:382)
	at org.htmlunit.javascript.host.event.EventTarget.fireEvent(EventTarget.java:171)
	at org.htmlunit.javascript.host.Window.dispatchEvent(Window.java:1908)
	at org.htmlunit.javascript.host.Window$1.lambda$execute$0(Window.java:2032)
	at org.htmlunit.javascript.host.Window$1$$Lambda$602/0x00000008018a4880.run(Unknown Source)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.host.Window$1.execute(Window.java:2032)
	at org.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:951)
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:898)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:846)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:814)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2568)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2561)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeEventListeners(EventListenersContainer.java:345)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeAtTargetListeners(EventListenersContainer.java:382)
	at org.htmlunit.javascript.host.event.EventTarget.fireEvent(EventTarget.java:171)
	at org.htmlunit.html.HtmlPage.lambda$executeEventHandlersIfNeeded$1(HtmlPage.java:1273)
	at org.htmlunit.html.HtmlPage$$Lambda$460/0x000000080179c0c0.run(Unknown Source)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callSecured(JavaScriptEngine.java:751)
	at org.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1273)
	at org.htmlunit.html.HtmlPage.initialize(HtmlPage.java:313)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:701)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:573)
	at org.htmlunit.WebClient.getPage(WebClient.java:493)
	at org.htmlunit.WebClient.getPage(WebClient.java:402)
	at org.htmlunit.html.BaseFrameElement.loadInnerPageIfPossible(BaseFrameElement.java:211)
	at org.htmlunit.html.BaseFrameElement.loadInnerPage(BaseFrameElement.java:121)
	at org.htmlunit.html.BaseFrameElement$2.execute(BaseFrameElement.java:460)
	at org.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:951)
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:898)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:846)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:814)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2568)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2561)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeEventListeners(EventListenersContainer.java:345)
	at org.htmlunit.javascript.host.event.EventListenersContainer.executeAtTargetListeners(EventListenersContainer.java:382)
	at org.htmlunit.javascript.host.event.EventTarget.fireEvent(EventTarget.java:171)
	at org.htmlunit.html.DomElement.lambda$fireEvent$0(DomElement.java:1542)
	at org.htmlunit.html.DomElement$$Lambda$479/0x00000008017ae1a8.run(Unknown Source)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callSecured(JavaScriptEngine.java:751)
	at org.htmlunit.html.DomElement.fireEvent(DomElement.java:1542)
	at org.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1312)
	at org.htmlunit.html.HtmlPage.initialize(HtmlPage.java:313)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:701)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:573)
	at org.htmlunit.WebClient.getPage(WebClient.java:493)
	at org.htmlunit.WebClient.getPage(WebClient.java:402)
	at org.htmlunit.html.BaseFrameElement.loadInnerPageIfPossible(BaseFrameElement.java:211)
	at org.htmlunit.html.BaseFrameElement.loadInnerPage(BaseFrameElement.java:121)
	at org.htmlunit.javascript.host.dom.Node.initInlineFrameIfNeeded(Node.java:234)
	at org.htmlunit.javascript.host.dom.Node.appendChild(Node.java:217)
	at jdk.internal.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17-ea/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@17-ea/Method.java:566)
	at org.htmlunit.corejs.javascript.MemberBox.invoke(MemberBox.java:221)
	at org.htmlunit.corejs.javascript.FunctionObject.call(FunctionObject.java:429)
	at org.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:2104)
	at org.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1139)
	at org.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:91)
	at org.htmlunit.corejs.javascript.NativePromise.constructor(NativePromise.java:103)
	at org.htmlunit.corejs.javascript.NativePromise$$Lambda$291/0x00000008015bb568.construct(Unknown Source)
	at org.htmlunit.corejs.javascript.LambdaConstructor.fireConstructor(LambdaConstructor.java:131)
	at org.htmlunit.corejs.javascript.LambdaConstructor.construct(LambdaConstructor.java:127)
	at org.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:2166)
	at org.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1139)
	at org.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:91)
	at org.htmlunit.corejs.javascript.ArrayLikeAbstractOperations.iterativeMethod(ArrayLikeAbstractOperations.java:129)
	at org.htmlunit.corejs.javascript.ArrayLikeAbstractOperations.iterativeMethod(ArrayLikeAbstractOperations.java:53)
	at org.htmlunit.corejs.javascript.NativeArray.execIdCall(NativeArray.java:509)
	at org.htmlunit.corejs.javascript.IdFunctionObject.call(IdFunctionObject.java:85)
	at org.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:2104)
	at org.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:1139)
	at org.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:91)
	at org.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:395)
	at org.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:300)
	at org.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4278)
	at org.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:839)
	at org.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:890)
	- locked <0x00000006d0449b10> (a org.htmlunit.html.HtmlPage)
	at org.htmlunit.corejs.javascript.Context.call(Context.java:590)
	at org.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:487)
	at org.htmlunit.javascript.HtmlUnitContextFactory.callSecured(HtmlUnitContextFactory.java:314)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:846)
	at org.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:814)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2568)
	at org.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2561)
	at org.htmlunit.javascript.background.JavaScriptFunctionJob.runJavaScript(JavaScriptFunctionJob.java:56)
	at org.htmlunit.javascript.background.JavaScriptExecutionJob.run(JavaScriptExecutionJob.java:95)
	at org.htmlunit.javascript.background.JavaScriptJobManagerImpl.runSingleJob(JavaScriptJobManagerImpl.java:451)
	at org.htmlunit.javascript.background.DefaultJavaScriptExecutor.run(DefaultJavaScriptExecutor.java:154)
	at java.lang.Thread.run(java.base@17-ea/Thread.java:831)

Found 1 deadlock.

I googled around and found several similar issues for old versions of htmlunit and it seems they are not resolved:
https://sourceforge.net/p/htmlunit/bugs/1662/
https://sourceforge.net/p/htmlunit/bugs/1746/
https://sourceforge.net/p/htmlunit/bugs/1259/

I understand this may be complicate so just record it here.

@RuralHunter
Copy link
Contributor Author

This maybe not related to deadlock but I'm just checking this call stacks:

	at org.htmlunit.html.HtmlPage.initialize(HtmlPage.java:313)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:701)
	at org.htmlunit.WebClient.loadWebResponseInto(WebClient.java:573)
	at org.htmlunit.WebClient.getPage(WebClient.java:493)
	at org.htmlunit.WebClient.getPage(WebClient.java:402)
	at org.htmlunit.html.BaseFrameElement.loadInnerPageIfPossible(BaseFrameElement.java:211)
	at org.htmlunit.html.BaseFrameElement.loadInnerPage(BaseFrameElement.java:121)
	at org.htmlunit.javascript.host.dom.Node.initInlineFrameIfNeeded(Node.java:234)

This is to load an iframe but in HtmlPage.initialize() it runs code in !isFrameWindow block. It seems this line changes isFrameWindow to false. It checks only normal frame but not iframe. Is this to intentionally skip iframe or a bug?

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

1 participant