Assignments Fail Again in Shared Database; corrected by downloading the data

Once again, assignments were not working in a shared database. I have attached a screen shot showing a field WCNonTravel, a one-line procedure assigning Y to the field, and the Server Administration window. I have run the procedure from the Action menu, and received a message that “Cannot modify field WCNonTravel, record is locked by another user”.
But there are no other users with this DB open (shown in Server Admin Window.)
When I just moved down from record to record, several records result in the same message.
I am going to Download the data and try this experiment again. After downloading the data, the assignment worked correctly for every row.

I have a vague memory of possibly fixing a bug like this a week or two ago. I cannot find any mention of it in my git notes, though. Perhaps I fixed it incidentally as I was working on the new logging feature. I have fixed a couple of bugs I wasn’t even looking for as I’ve been testing the logging itself. The logging feature is very nearly done, my plan is to spend the next several days going thru as many operations as I can with various logging features turned on, both to test the logging itself and the underlying code. Then I’ll turn it over to you. Between us hopefully these intermittent issues can get tracked down and quashed.

I will be ready to try to reproduce the bad behaviors so you will learn a lot more about them.

In a STAND ALONE database, one of my existing procedures started crashing consistently this morning. I inserted several console statements to find out how far it got. What I learned was that it crashed when it reached an assignment. There was a console statement immediately before an after the assignment; it reached the one before but not the one after. I copied the console records before and the crash records, then I found there is a crash report, which I also copied. Are those of any interest to you?

Finally, a miracle occurred and the procedure did not crash again. This continues the occurrence of intermittent problems with assignments. Usually they work but then will fail several times in a row.

Unfortunately, raw crash reports are almost as unreadable to me as they are to you.

There is a technique that programs can use to add symbols to the crash report and submit them to the developer, and Panorama does that automatically. Each time it launches, it checks to see if it crashed the last time it ran, and if so, sends the report to ProVUE. These are automatically collected in a database. The result is still not usually super informative, but better than nothing.

So, naturally after receiving your message I immediately checked the database to look for your crash reports. There weren’t any! We received crash reports from two other users today, but none from you. This is the second time in the last couple of months that this has occurred (a crash occurring but no report sent to our server). I have no idea why. Where did you find this crash report? Is there any preference setting you see that might affect whether Panorama has access to the report? (I am not aware of any such setting, but perhaps that is ignorance on my part, though I have searched for such an option.) You mention “crash records” and “crash report” as two separate things, what does that mean?

First, when I had several crashes in a row, I put several console statements in the procedure so I could learn how far it got. Here is the console entries showing a list of messages from my console statements. This time the procedure finished.

Earlier in the day when this procedure crashed, there were four lines in the console regarding the crash. The first one said “default 0xf798a 12:10:04.533258-0400 11491 PanoramaX Crashed on Sat May 23 12:09:48 2020” I was referring to these console entries as the crash records. Shortly after that, I sent the last report on this forum.

The console has a tab on the left for crash reports. This is exactly the information presented in a large window after the crash.

The console has a list of crash reports:

Sometimes I see a message after a crash, but I don’t remember precisely when, asking if I want to send a report to the developer. Sometimes I say yes, sometimes I say no. As far as I knew, these reports were not useful to anyone. I will make a point of saying yes when I get the chance.

I think if you see a dialog it is asking if you want to send the report to Apple. Maybe, it might ask you if you want to send to the developer if an app that is a Mac App Store crashed. But Apple doesn’t ever send crash reports to developers for apps that aren’t in the Mac App Store.

I see you’ve had a bunch of crashes in the last week. The last crash report from you we have received was on March 4. So something is stopping your crash reports from being sent to ProVUE. In fact, I see we have NO crash reports from you generated with 10.2. Maybe I did something to disable crash reports in the beta version, though I don’t recall doing that. I’ll have to look into it.

How did you get Console to display these messages? I’ve never really been able to get that to work with output from Panorama. Seeing that you have done it, I tried again today and I’ve been looking at documentation for Console.app on the web but I cannot seem to figure it out. :thinking:

I type a search term in the Console search bar, in this case PanoramaX, press return. That causes a drop-down menu to appear in the search box, saying “Any”. Change that to Library and you get the messages sent from Panorama. Bob McGarey, longtime Panorama user, taught me that a couple of months ago. I used to embed alerts in the procedure, but I like this way better way for checking the progress of a procedure. Certainly much faster than clicking through a bunch of alerts.

That’s what I did, but it didn’t work. The output doesn’t show up in the console. I know another way to do it (using Terminal.app), but if I could get Console.app working I would like to document that.

I also worked this out in a post I made on March 9th:

I figured out the problem. I was not using the Console statement, I was using a new statement called stdout. It turns out that Console doesn’t recognize that the output comes from Panorama when that statement is used.