iceberg icon indicating copy to clipboard operation
iceberg copied to clipboard

Commit window: Revert action produce a debugger

Open jecisc opened this issue 1 year ago • 2 comments

Since a few versions of Pharo 13 now when I revert something in the commit window of Iceberg I get a debugger saying that an entity of the name of what I removed was not found in a collection.

image

This was not happening recently

jecisc avatar Dec 03 '24 10:12 jecisc

Dictionary>>errorKeyNotFound: [self errorKeyNotFound: key] in Dictionary>>removeKey: in Block: [self errorKeyNotFound: key] Dictionary>>removeKey:ifAbsent: Dictionary>>removeKey: IceNode>>removeChild: IceTipDiffSelectingPanel(IceTipDiffPanel)>>diffEntryRemoved: MessageSend>>value: MessageSend>>cull: MessageSend>>cull:cull: [ action cull: anAnnouncement cull: announcer ] in AnnouncementSubscription(AbstractAnnouncementSubscription)>>deliver: in Block: [ action cull: anAnnouncement cull: announcer ] FullBlockClosure(BlockClosure)>>on:do: [ Processor terminateRealActive ] in [ :ex | | onDoCtx handler bottom thisCtx | onDoCtx := thisContext. thisCtx := onDoCtx home.

		  "find the context on stack for which this method's is sender"

		  [ onDoCtx sender == thisCtx ] whileFalse: [
			  onDoCtx := onDoCtx sender.
			  onDoCtx ifNil: [ "Can't find our home context. seems like we're already forked
			and handling another exception in new thread. In this case, just pass it through handler."
				  ^ handlerAction cull: ex ] ].

		  bottom := [ Processor terminateRealActive ] asContext.
		  onDoCtx privSender: bottom.

		  handler := [ handlerAction cull: ex ] asContext.
		  handler privSender: thisContext sender.

		  (Process forContext: handler priority: Processor activePriority) resume.

		  "cut the stack of current process"
		  thisContext privSender: thisCtx.
		  nil ] in FullBlockClosure(BlockClosure)>>on:fork: in Block: [ Processor terminateRealActive ]

jecisc avatar Dec 03 '24 10:12 jecisc

For the person taking this:

  • try finding what Pharo build and PR that introduced the issue using the launcher (https://thepharo.dev/2020/11/23/bisecting-pharo-versions-to-find-regressions/). The objective here is to find the change, not to blame anybody, we are all entitled to make errors!
  • try writing a test reproducing the issue. I understand that it's difficult to write a test for code we don't know, but I think there are great things to learn if we make an effort to test it.
  • if you have a test + the cause => you can try to make a fix!

guillep avatar Dec 04 '24 09:12 guillep