Moonshine-IDE / Super.Human.Installer

Super.Human.Installer helps you install the latest and greatest HCL Domino technologies easily.
https://superhumaninstaller.com/
Other
2 stars 0 forks source link

Crash When Deleting VM #78

Closed JoelProminic closed 10 months ago

JoelProminic commented 1 year ago

I got a crash today with v0.8.16 Development on macOS Monterey when I tried to delete a VM:

[2023-06-28 10:25:34][FATAL][Genesis/Source/genesis/application/GenesisApplication.hx:562] Fatal exception : Null Object Reference
Details : Exception: Null Object Reference
Called from openfl.display.Graphics.__getBounds (openfl/display/Graphics.hx line 1630)
Called from openfl.display.DisplayObject.__getBounds (openfl/display/DisplayObject.hx line 1487)
Called from openfl.display.DisplayObjectContainer.__getRenderBounds (openfl/display/DisplayObjectContainer.hx line 768)
Called from openfl.display.DisplayObject.__getFilterBounds (openfl/display/DisplayObject.hx line 1498)
Called from openfl.display.DisplayObjectContainer.__getFilterBounds (openfl/display/DisplayObjectContainer.hx line 735)
Called from openfl.display.DisplayObjectContainer.__getFilterBounds (openfl/display/DisplayObjectContainer.hx line 750)
Called from openfl.display.DisplayObjectContainer.__getFilterBounds (openfl/display/DisplayObjectContainer.hx line 750)
Called from openfl.display.DisplayObjectRenderer.__updateCacheBitmap (openfl/display/DisplayObjectRenderer.hx line 371)
Called from openfl.display._internal.Context3DDisplayObject.renderDrawable (openfl/display/_internal/Context3DDisplayObject.hx line 60)
Called from openfl.display._internal.Context3DDisplayObjectContainer.renderDrawable (openfl/display/_internal/Context3DDisplayObjectContainer.hx line 17)
Called from openfl.display.OpenGLRenderer.__renderDrawable (openfl/display/OpenGLRenderer.hx line 850)
Called from openfl.display._internal.Context3DDisplayObjectContainer.renderDrawable (openfl/display/_internal/Context3DDisplayObjectContainer.hx line 30)
Called from openfl.display.OpenGLRenderer.__renderDrawable (openfl/display/OpenGLRenderer.hx line 850)
Called from openfl.display._internal.Context3DDisplayObjectContainer.renderDrawable (openfl/display/_internal/Context3DDisplayObjectContainer.hx line 30)
Called from openfl.display.OpenGLRenderer.__renderDrawable (openfl/display/OpenGLRenderer.hx line 850)
Called from openfl.display.OpenGLRenderer.__render (openfl/display/OpenGLRenderer.hx line 764)
Called from openfl.display.Stage.__onLimeRender (openfl/display/Stage.hx line 2111)
Called from lime.app._Event_lime_graphics_RenderContext_Void.dispatch (lime/_internal/macros/EventMacro.hx line 91)
Called from lime._internal.backend.native.NativeApplication.handleRenderEvent (lime/_internal/backend/native/NativeApplication.hx line 371)
Called from lime._internal.backend.native.NativeApplication.exec (lime/_internal/backend/native/NativeApplication.hx line 146)
Called from lime.app.Application.exec (lime/app/Application.hx line 150)
Called from ApplicationMain.create (ApplicationMain.hx line 142)
Native : null
Stack : null

My steps before this triggered:

  1. Install and open v0.8.16 Development
  2. There was an existing server entry, but it did not show a button to delete the VirtualBox VM, only for deleting the server.
  3. I assumed the VirtualBox VM didn't existing and clicked the start button to create the VM
  4. The process completed too quickly, and it became clear that the VM provisioning did not fully complete on the previous run.
  5. I stopped the VM
  6. I deleted the VM, and got the above crash
  7. I reopened Super.Human.Installer Development, and had an option to delete the VM. image
  8. I deleted the VM, and it did not fail this time.
JoelProminic commented 1 year ago

This may be a separate error, but I tried to recreate the VM, but I got an immediate error.

---- Hosts.yml END ----
[SHI]: VirtualBox VM: { serverId => 8699, virtualBoxId => 8699--demo.STARTcloud.com }
[SHI]: Executing 'vagrant up' (provision:false)
[SHI]: 'vagrant up' started
The machine with the name '938440b' was not found configured for
this Vagrant environment.
[SHI]: 'vagrant up' stopped with exit code: 1, elapsed time: 00:00:01
[SHI]: Server destroyed

I confirmed the VM did not exist. SHI showed this state:

image

I did not get an error on the Abort action (surprisingly), and "vagrant up" started properly on my next attempt.

piotrzarzycki21 commented 10 months ago

I was talking with Josh and crash was happened in the main thread. It seems to be fixed with https://github.com/openfl/openfl/commit/ec633950121afdb22100773e61f0e3e905580d6d

I have tested it and couldn't reproduce this error.

JoelProminic commented 10 months ago

This comment is covered by #92.

I have not seen the crash since my original report, but I did see these steps occasionally when I was testing with 0.8.19 over the last week.

  1. There was an existing server entry, but it did not show a button to delete the VirtualBox VM, only for deleting the server.
  2. I assumed the VirtualBox VM didn't existing and clicked the start button to create the VM
  3. The process completed too quickly, and it became clear that the VM provisioning did not fully complete on the previous run.

This behavior was triggering when I was trying to recreate the server, similar to #92. After stopping the VM, SHI would end up in a state where I couldn't delete the VM, but the VM still existed. To fix this, I needed to manually run "vagrant destroy" and then rerun SHI.

If I see this trigger again after the 0.8.20 release, I'll create a separate issue. Unfortunately, this bug was triggering inconsistently, so I'm not sure how to reproduce it without just running multiple recreate tests.