Another week of Beta Testing

This week was reasonably good, but far from perfect. Most of the issues related to my programming and some bugs surfaced. I had not set up automatic numbering correctly in one database and that caused some problems, which I have now corrected. I have from time to time added features and had to make adjustments after installing, but nothing out of the ordinary. I continued to see some of the same problems that we have previously discussed (database not updating correctly when a new generation has been unloaded by me).
The same non-shared database has experienced seemingly random periodic crashes (Friday), which I have not been able to eliminate. That is the database where I had found crashes that seem to be caused by an assignment, but then it works correctly without any code changes, although I was not able to confirm this time that that is where the issue arose. One user reported an error in a number entry being rejected, but I suspect she had made an entry error and that there was not a PanX error (we patched the code that tests the number entry format). (She also plugged her ethernet cable into the telephone network so PanX couldn’t find the server.)
The server has run continuously since June 25th-no crashes.
I look forward to b7 and hope that some issues are resolved and that we can help diagnose other issues. Do you have an estimate on when you will distribute it?

I am working right now on several issues that turn out to be related:

  • ensuring that code after an opendatabase or synchronize doesn’t run until after the opendatabase or synchronize operation is complete, and that any .Initialize code executes before code continues after an opendatabase/synchronize operation.
  • opening additional files in an .Initialize procedure
  • accessing server variables in an .Initialize procedure

I’m sure you read the documentation page about Understanding the Run Loop I posted the other day. That wasn’t really written in response to Michael’s question. I have been wrestling with making sure that various pieces of code run in the correct order as a procedure runs and Panorama is communicating with a server. It turns out that everything worked fine when using Panorama client manually, but when run from a procedure, code can run in the wrong order. In order to fix this I had to build a new “gating” mechanism that enables multiple unrelated code to synchronize properly. This is partially working, but this work is slow and difficult. It cannot be rushed.

Basically at the moment it’s like I’m working on a car and a number of parts are spread out on the shop floor. Can’t really jump in and go for a drive at the moment, the parts have to be carefully put back into place. And some of the parts need custom machining before they can be re-installed.

The only good news is that I feel that I have a good handle on what is needed. A few weeks ago I was completely lost and had no idea what was wrong or what to do. That is no longer the case, I have a good handle on what the problems are. But they are not simple one line fixes, some major replumbing is necessary under the hood. Most of that has been done, but now there are leaks I need to track down,

Sorry for all the mixed metaphors. The minute b7 is ready, it will be off to you.