Share your ideas for the JMP Scripting Unsession at Discovery Summit by September 17th. We hope to see you there!
Choose Language Hide Translation Bar
Highlighted
David_Burnham
Super User

Unstable script

I have a script that isn't doing what I want it to do.  so I add a trivial diagnostic to help trace what is going on:

 

show("here");

But when I do this it causes JMP to crash.

I just wonder if anyone else has come across this type of problem.  

I know it's not much to go on!

-Dave
1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Craige_Hales
Staff (Retired)

Re: Unstable script

If it crashed, it is a bug in JMP. If you get some sort of crash file, that might help us figure it out.

Just guessing, I imagine there are display boxes and closed reports involved, and somehow there is a JSL variable that is pointing to a display box that is deleted. Depending what has happened to that memory since it was deleted, bad things may happen. Or maybe nothing. Writing to the log, with show or print, is likely to trigger some display box clean up, and possibly the crash.

We put a lot of work into JMP 15 to handle display boxes in a more state-of-the-art way; you might get a better diagnostic out of an early adopter JMP 15. 

Craige

View solution in original post

7 REPLIES 7
Highlighted
vince_faller
Super User

Re: Unstable script

Nope. Just ran it alone and it doesn't happen to me.  In regular code, I don't often show() for non-variables, I usually print(). 

 

Vince Faller - Predictum
Highlighted

Re: Unstable script

Is this behavior reproducible? What happens after JMP crashes and you re-start it?

Learn it once, use it forever!
Highlighted
txnelson
Super User

Re: Unstable script

Dave,
I am not having any issue with this, running under Windows 10, with JMP Pro 14.3
Jim
Highlighted
David_Burnham
Super User

Re: Unstable script

Some updates:

  1. This problem is occurring on MacOS.  It works fine on Windows.  I was running 14.2 and have upgraded to 14.3 and the problem still occurs.
  2. The problem is repeatable, although I think I would struggle to create a simple sample script that exhibits the same behaviour.
  3. The only reason I have a "show" is because the real code was causing a crash and I using show statements to trace execution.  But even with the most trivial code I could think of - just the "show" - the problem still occurred.   BUT - if I replace "show" with "print" then the crash doesn't occur! So that is progress!

 

-Dave
Highlighted
David_Burnham
Super User

Re: Unstable script

As I said, "print" is working, but it was really just a place holder for some other code that was causing a crash.  

I've done some more testing. This is starting to feel like Schrodingers cat. 

I have restored the original code.

If I restart JMP and run the script it fails.  If I restart JMP and open the script - look at it, to remind myself what it looks like - then close the script and run it, it works.

-Dave
Highlighted
Craige_Hales
Staff (Retired)

Re: Unstable script

If it crashed, it is a bug in JMP. If you get some sort of crash file, that might help us figure it out.

Just guessing, I imagine there are display boxes and closed reports involved, and somehow there is a JSL variable that is pointing to a display box that is deleted. Depending what has happened to that memory since it was deleted, bad things may happen. Or maybe nothing. Writing to the log, with show or print, is likely to trigger some display box clean up, and possibly the crash.

We put a lot of work into JMP 15 to handle display boxes in a more state-of-the-art way; you might get a better diagnostic out of an early adopter JMP 15. 

Craige

View solution in original post

Highlighted
David_Burnham
Super User

Re: Unstable script

You're spot on Craige.

I went through a tedious process of regenerating the code, block by block, restarting JMP each time.  The cause of the error was a display box that I was deleting.  The display box was the legend to a bubble plot - I wanted to put it into a VListBox so that I could align it with some additional information - so I created a clone, deleted it and then appended it as part of a VListBox.  The bubble plot was also within a container and at the time hadn't been attached to a window so wasn't rendered.  My first workaround was to delete it after rendering and that was fine - but flickery.  I then decided I could get rid of it by sending a message to the bubble plot and that was working fine.

-Dave
Article Labels

    There are no labels assigned to this post.