[Bug-1203] Designer Chromium Crash with Exit Code 139 on MacOS Big Sur

Seems to be a bit of a strange error and seemingly random. Every so often I get an error in my designer that Chromium has crashed. I haven’t been tracking how long the Designer runs before the crash but seems to be about every 2-3 hours. The Designer has to be restarted to get Perspective working again. I hadn’t worked with Perspective in a while but i’ve had about 2-3 crashes per day since I started working with it again. I don’t see anything that pops up in the gateway logs, just the error in the Designer console:

20:25:46.168 ERROR Chromium process exit code: 139
20:25:46.269 [Thread-17] ERROR com.teamdev.jxbrowser - Chromium process exit code: 139
20:25:51.868 [Thread-17] ERROR designer.JXBrowserUtil - Browser Engine has reported a crash with exit code 139: EngineCrashed{exitCode=139}

Running Ignition 8.1.5 (but also happened on 8.1.3). Designer is running on a 2015 Macbook Pro running MacOS 11.3. I tried reinstalling the Designer Launcher to see if that would have any impact but no luck.

Any ideas on things I can check or logs that would be helpful?

Edit: I forgot to add that I get the following errors when I try to exit the Designer (without saving) and end up having to force quit:

23:18:08.411 [AWT-EventQueue-0] ERROR com.inductiveautomation.ignition.client.util.gui.ErrorUtil - null
java.util.concurrent.TimeoutException: null
	at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:434)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:63)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.commit(ResourceEditor.java:160)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:284)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:271)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.lambda$shutdown$1(ViewWorkspace.java:636)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.shutdown(ViewWorkspace.java:636)
	at com.inductiveautomation.perspective.designer.DesignerHook.shutdown(DesignerHook.java:360)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$LoadedModule.shutdown(IgnitionDesigner.java:1928)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.cleanup(IgnitionDesigner.java:911)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.shutdown(IgnitionDesigner.java:496)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleExit(IgnitionDesigner.java:3044)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$3.windowClosing(IgnitionDesigner.java:354)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.Window.processWindowEvent(Unknown Source)
	at java.desktop/javax.swing.JFrame.processWindowEvent(Unknown Source)
	at java.desktop/java.awt.Window.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
23:18:08.752 [AWT-EventQueue-0] ERROR Perspective.Designer.Workspace - Could not unregister the bridge's edit action handler for a view on deactivate
java.lang.IllegalArgumentException: missing event subscriber for an annotated method. Is com.inductiveautomation.perspective.designer.JavaJsBridgeEditActionHandler@d28d614 registered?
	at com.google.common.eventbus.SubscriberRegistry.unregister(SubscriberRegistry.java:111)
	at com.google.common.eventbus.EventBus.unregister(EventBus.java:201)
	at com.inductiveautomation.perspective.designer.workspace.design.BrowserPanel.onDeactivate(BrowserPanel.java:858)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.notifyDeactivated(ViewResourceEditor.java:532)
	at com.inductiveautomation.perspective.designer.workspace.PerspectiveWorkspaceListener.editorSelected(PerspectiveWorkspaceListener.java:73)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$3.stateChanged(TabbedResourceWorkspace.java:115)
	at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
	at com.jidesoft.swing.JideTabbedPane$IgnoreableSingleSelectionModel.fireStateChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
	at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
	at java.desktop/javax.swing.JTabbedPane.removeTabAt(Unknown Source)
	at com.jidesoft.swing.JideTabbedPane.removeTabAt(Unknown Source)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:293)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:271)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.lambda$shutdown$1(ViewWorkspace.java:636)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.shutdown(ViewWorkspace.java:636)
	at com.inductiveautomation.perspective.designer.DesignerHook.shutdown(DesignerHook.java:360)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$LoadedModule.shutdown(IgnitionDesigner.java:1928)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.cleanup(IgnitionDesigner.java:911)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.shutdown(IgnitionDesigner.java:496)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleExit(IgnitionDesigner.java:3044)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$3.windowClosing(IgnitionDesigner.java:354)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.Window.processWindowEvent(Unknown Source)
	at java.desktop/javax.swing.JFrame.processWindowEvent(Unknown Source)
	at java.desktop/java.awt.Window.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException
	at com.teamdev.jxbrowser.deps.com.google.common.base.Preconditions.checkState(Preconditions.java:492)
	at com.teamdev.jxbrowser.internal.CloseableImpl.checkNotClosed(CloseableImpl.java:34)
	at com.teamdev.jxbrowser.zoom.internal.ZoomImpl.level(ZoomImpl.java:44)
	at com.inductiveautomation.perspective.designer.workspace.design.BrowserPanel.syncZoomIndicator(BrowserPanel.java:846)
	at com.inductiveautomation.perspective.designer.workspace.design.BrowserPanel.onActivate(BrowserPanel.java:821)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.notifyActivated(ViewResourceEditor.java:515)
	at com.inductiveautomation.perspective.designer.workspace.PerspectiveWorkspaceListener.editorSelected(PerspectiveWorkspaceListener.java:80)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$3.stateChanged(TabbedResourceWorkspace.java:115)
	at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
	at com.jidesoft.swing.JideTabbedPane$IgnoreableSingleSelectionModel.fireStateChanged(Unknown Source)
	at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
	at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
	at java.desktop/javax.swing.JTabbedPane.removeTabAt(Unknown Source)
	at com.jidesoft.swing.JideTabbedPane.removeTabAt(Unknown Source)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:293)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:271)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.lambda$shutdown$1(ViewWorkspace.java:636)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.shutdown(ViewWorkspace.java:636)
	at com.inductiveautomation.perspective.designer.DesignerHook.shutdown(DesignerHook.java:360)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$LoadedModule.shutdown(IgnitionDesigner.java:1928)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.cleanup(IgnitionDesigner.java:911)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.shutdown(IgnitionDesigner.java:496)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleExit(IgnitionDesigner.java:3044)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$3.windowClosing(IgnitionDesigner.java:354)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(Unknown Source)
	at java.desktop/java.awt.Window.processWindowEvent(Unknown Source)
	at java.desktop/javax.swing.JFrame.processWindowEvent(Unknown Source)
	at java.desktop/java.awt.Window.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
1 Like

Unfortunately I believe this issue to be specific to MacOS 11+ (Big Sur), and potentially the Chromium version embedded in JxBrowser. We have an internal ticket open, although I’m not sure what the time line is on a resolution.

2 Likes

Thanks Jeff. I’m just happy to know I’m not the only one seeing this issue!

I’m seeing it as well on Big Sur with an 2015 Intel Macbook Pro.

1 Like

Just curious if there is any update on this?

We’re actively working to update JXBrowser to a version that adds support for Big Sur. We believe this will address this particular crash, but will have to confirm with testing once the update is complete.

1 Like

Not positive (could be coincidence or mind numbing frustration…), but this seems to have gotten worse with MacOS 11.4. I’m lucky if I make it 15-30 minutes without crashing…

I don’t mean to keep pinging this topic, but any update on this bug? I’ve had 3 crashes in the last hour… Any recommendations for things that I can do to reduce the frequency of these crashes (besides buying a PC :face_vomiting: or Linux machine…)? Downgrading to an older MacOS is, sadly, not an option at this time…

I’m still proving out Perspective before we purchase the module for a couple of our licenses and I won’t be able to get approval until I can adequately support our deployments.

We were waiting on the upstream library to release an update, because we ran into other issues with the update Jeff mentioned testing earlier in this thread.

That latest update was just released last week, and is on the short-list to be added; possibly as soon as 8.1.9.

1 Like

Awesome, thanks @PGriffith! Somewhat related, has there been any in house testing on M1 Macs? We’re looking to replace some Mac Mini’s and I’ll likely be upgrading my laptop within the next year.

any news on this? not noticing any difference in 8.1.9, lots of frequent crashes on mac os.

This change hasn’t landed yet, but hopefully will soon :tm:, along with a batch of performance improvements for the designer. As you might imagine, the regression risk is high, so there’s a lot of back and forth with QA.

Any updates? Working in Perspective on Mac is utterly demoralizing at the moment…

Still going through back and forth with QA.

Just checking in on this… I vaguely recall seeing a post that alluded to a possible JXBrowser update for 8.1.12, but I didn’t see anything in the nightly changelogs. Fingers crossed for 8.1.13!

Edit: Gentle (but somewhat shameless) bump…

You don’t need to bump this. We are aware and actively working on resolving this issue. We got pretty close, but then encountered some breaking changes with how drag and drop behaves. We want this fixed just as much as you do, promise. :wink:

Sorry @ynejati. I was just trying to get a timeframe update since I hadn’t heard anything in a couple months and this bug is directly impacting whether or not we decide to use Vision vs Perspective for upcoming projects.

Definitely go perspective… Insert However have you tired a real computer** statements from windows lovers.

Im having the same issue but certainly wouldn’t discourage me from the benefits of Perspective long term. Spinning up a light weight Windows VM can help in the short term too.

Any news on this bug? I´ve made a project on 8.1.19, but from some point I´m not able to edit this or any other project. OS is MacOS Monterey on M1.

We have a new version from the JXBrowser team which we will be testing during the coming weeks to verify it meets our requirements for adoption. I can’t provide a realistic release period because it’s dependent on our own availability and the reliability of a product (JXBrowser) which is not our own.