This post includes several related bug reports, a feature request, and a request for information.
***Details of how Aurora detects if it is a second copy would be much appreciated***
First, the bugs:
Aurora has a feature that protects the database from corruption if two copies are running at the same time. This feature has a few bugs.
It was working, but quit while trying to upgrade 554 to 560 after a bad crash. 621 also affected.
Clean install of 554 no longer works, either.
In any case, 'copy mode' itself is bugged.
1 'Copy mode' may be activated with only one instance of Aurora running. Details at end.
2 The database is still modified, even if no action is taken (ie: start and then quit immediately).
3 The database is still modifiable:
3a Selecting a game enables the Save and Delete buttons, which work. Note that the select game screen does not warn that it is in 'copy mode'. In particular an active game in one instance of Aurora can be deleted from another.
3b If all games are deleted, the new game screen comes up without any warning of a problem. Creating a new game will hang if two copies of Aurora are actually open. It works if the 'copy mode' instance is actually the only instance.
4 The F3 System window is still accessible through the F9 screen, just not from the main menu
4a Advancing time hangs the game with 100% CPU, requiring force quit, even if only one copy is open.
Versions affected: 554 556 560 621
Version 010 does not appear to check for second copies. Actually running a game in two instances at the same time corrupts things nicely
1 A showstopper for those affected, but seems to be rare.
2 Minor bug. Effects if two copies are open at the same time have not been tested.
3,4 Bugs, but only affects 'copy mode'. 3b is potentially bad as there is no warning.
4a Side effect of 4. WAD?
******************************
Second, the feature request.
It took me two days to even figure out what 'copy mode' is, as the message 'THIS IS A COPY' is not very clear or noticable. Due to bug 3b, it may not even be seen.
Perhaps a popup window on startup (before the select game window) to the effect of 'Another copy of Aurora is already running. To protect your files, some features have been disabled. Please close all copies of Aurora and then restart it to play normally. ' would be helpful.
******************************
Third, the information request.
I suspect either some weird library conflict, or a timing race.
To help diagnose this problem, any information about how Aurora detects if it is a second copy would be helpful.
Also, which version of MSAccess is used, and which connection method? (ODBC or OLE)
I am not very familiar with VB or MSA, so please be patient.
******************************
Background.
Aurora 554 was working to start with, usual database errors aside.
There was one bad crash drawing the F3 System window affecting one system, but I was able to recover by going through the F9 window to reset the viewport. This was a segfault in GDI code. Not sure if Aurora or Wine was at fault.
On Thursday I was attempting to learn fleet management, which reset all of my TGs, erasing all orders. In recovering this, I somehow ran both of my gas miners and my tanker out of fuel. In orbit around a minable gas giant. Oops.
At this point I switched the F3 System window to that system and attempted to zoom in. Immediate segfault. (CTD in Windows terms). Further, the F9 trick didn't work. Opening to that system crashed instantly.
At this point I decided to try upgrading to 556. It was immediately apparent something was borked. Upgrading again to 560, and then 620 had no effect. Deleting the entire bottle* and reinstalling from scratch did not fix it. In my frustration, I also deleted my savefile and backups.
I can verify the following:
Rebooting has no effect.
Killing the bottle and reinstalling has no effect.
Killing the bottle, deleting every file and directory on my computer with 'Aurora' in its name (except the zip files needed to reinstall it), rebooting, and then reinstalling from scratch has no effect.
I am beginning to wonder why it worked at all in the first place.
Exactly one Aurora process is running, with 4 threads. 1 parent, 3 children.
Exactly one wineserver process is running. (Provides Windows services on Linux)
Each Aurora thread has stevefire. mdb open exactly once. This normal for Linux threads.
wineserver has stevefire. mdb open exactly once. This normal if Aurora is using Windows style file locks.
The above is also true of stevefire. ldb
No other program has stevefire. mdb or stevefire. ldb open.
*In Wine a bottle is a virtual windows partition. Deleting it should be equivalent to a format and clean reinstall of windows. In particular, this kills the registry and all installed programs and files.
System:
Pentium 4 1. 8GHz
1GB Ram
Mobility Radeon 7500
Linux 3. 2. 0
Debian testing
Wine 1. 5. 6
winetricks
vb6run (Visual Basic 6 SP 6Runtime. Required)
wmp10 (Windows Media Player 10. Fixes sound related ActiveX error. Sound doesn't actually work)
jet40 (Attempt to fix database ActiveX error. Not able to test yet)
ie6 (Supposedly fixes an ActiveX error. Not able to test yet)