Sokoban "freezes" after reporting invalid file

6 posts / 0 new
Last post
WayneCa
Offline
Joined: 2014-07-13
Sokoban "freezes" after reporting invalid file

Freeze isn't the right word. The music continues to play, but no mouse clicks register. I can switch to another window and back again, but I can't do anything with Sokoban. The only way out is CTRL-ALT-DELETE. Also, after getting out, the system tray icon remains, and I can see two of them when I re-launch Sokoban.

I am using 3.3 build 1, the downloaded version (not registered). My system is running XP Pro SP3 (please no one remark about XP being unsupported by M$. I know already.)

While I am on this subject, is there a validation tool that will tell me what about the file is invalid? Just being told the file is not valid is of no help when trying to design levels for the game. The game freezing afterward is just that much more of an annoyance.

Bjorn: The *_L.slc file I emailed you has an error. I corrected the error and then Sokoban reported invalid file. I know what I changed, and it should not have made the file invalid. Without more information it takes me much longer to isolate and correct the problem. I will send you the corrected file as soon as I figure out what became invalid.

Edit:

I have found one thing that I cannot explain. The max width and height is set to 98 wide and 39 high. There are 25 puzzles, each set of five having the same sizes. They are:

95x37
95x38
98x38
89x39
95x37

It took me time to make sure those attributes were set correctly. When I went to see what became invalid, the first thing I noticed is that all 25 puzzles had the width setting changed to 98. I did not do that, so I can only assume that Sokoban did it. Why would the program change those settings? The file is still being determined to be invalid by Sokoban, so I do not yet know what else the culprit is. All I do know is the file was accepted before. I was playing the levels when I discovered the error and went to change it. I quit the game before I started doing any editing, so that could not be an issue.

I will keep working on it, and will post my findings here, as I believe that this may be a contributing factor to the freeze problem.

Final edit:

I found the error in the file. When I made my correction to the error in the puzzle, I inadvertently left two closing L tags out (</L>). Apparently that is all it takes to invalidate a file. I am going to finish playing all the levels to make sure there are no other puzzle errors before emailing you a new copy, Bjorn.

The problem of freezing, and why Sokoban changed the width parameters on all the puzzles remain outstanding. Hopefully this can help lead to a fix. I used debug mode to see what was going on in the program. Apparently, recognizing an error is not enough. The program continued to try to load the levels anyway, and never stopped counting or trying. (I counted about 37 entries for the levels trying to be loaded at the bottom of the file.) I did not keep the debug report, but I can always generate another one, now that I know how easy it is to create a flawed file.

bjorn
Offline
Joined: 2013-04-18

Hi, if you have a level file that causes freezing, please send it to me.

About the changed widths. Did you use the builtin editor or did you use an external editor? What exactly did you do when the file changed?

WayneCa
Offline
Joined: 2014-07-13

Hi bjorn,

You can do it with either of the files I sent to you. Just remove one </L> tag from any one line in the file and save it. Make sure the copy you change has been imported into Sokoban before making the change, and that the changed copy is in the Levels folder. Run Sokoban and try to select that title in the collections drop-list. Sokoban will report not a valid file and then you will not be able to click on anything in the Sokoban window, but the music will keep playing.

bjorn
Offline
Joined: 2013-04-18

I tried removing in various places, but that causes the file to be ignored and it doesn't even show in the level selector.

WayneCa
Offline
Joined: 2014-07-13

I guess the only thing left to do is to use the debug mode to create a new debug file so you can see what is happening on my system.

Here is my system information, in case it makes a difference.

Computer: Dell Optiplex GX240 Mini-Tower
CPU: Single-core 1.6GHz Pentium 4
RAM: 1GB
OS: Windows XP Professional SP3

I will edit this post and attach the debug file when I have made it.

Steps I took:

1. edit the file in the Levels folder and remove the first occurrence of </L>
2. save file
3. run sokoban from the command line using -d option

The first thing I see is the selected collection in the drop-menu is Original & Extra, not my file. Nothing wrong here, my collection is removed from the list.

4. quit Sokoban
5. double-click level file to re-import the collection
6. Sokoban automatically launches, so I quit it to be able to run it with debug mode
7. before quitting I look at the drop-menu. My collection is now listed again.
8. run Sokoban with debug mode
9. Select my collection from the drop-menu
10. Sokoban reports an Error that the file is not a valid level-file.
11. click the OK button to close the dialog
12. level display goes blank, except for the background and a pusher in the lower-right of the display area. Music continues to play. Switching windows to this window and back again shows that Sokoban is not updating the display. Continued clicks to the window do nothing.
13. CTRL-ALT-DELETE shows that the program is running.
14 click End Task. Reports that Sokoban is not responding and ends the program when I click OK. The system tray icon remains. When I run Sokoban again, there will be two system tray icons until I close the program.

Here's the debug file:

attachment: 
bjorn
Offline
Joined: 2013-04-18

I've found the bug. It will be fixed in the next release.