ID:114137
 
Resolved
Outputting an /icon datum or the result of an icon operation could sometimes cause a crash for some users.
BYOND Version:484
Operating System:Windows XP Pro
Web Browser:Firefox 4.0.1
Applies to:Dream Seeker
Status: Resolved (488)

This issue has been resolved.
Descriptive Problem Summary:

Upon first-sight of a previously unseen, uploaded "face" icon in Who/Say/etc., most players' DS will crash.

re: custom uploaded player icons in FFO. These icons are split by state/frame into new icons via icon procs and fcopy(). These new icons are saved to disc and then loaded back into memory via file() and icon/New().

People who are crash-prone will crash each and every time they view a new icon in Say/Who/etc. Some people are immune to the crash effect, and I have no idea why. Some people are immune to crashing when they upload the icon themselves; some crash regardless.

Given the complexity of recreating the bug, I would recommend logging into FFO with a diagnostic version of DS.
Please ask for a "PC Icon Checker" to assist you in your testing.

Numbered Steps to Reproduce Problem:

1) Log into FFO.
2) Ask a "PC Icon Checker" to upload a custom icon for you or anyone.
3) Use the Who verb.
4) Observe whether you crash or not (crash when the icon fails to load).
5) Log back in (if DS crashed).
6) Use the 'Who' verb; note that it works properly now.

Expected Results:

Icon loads and DS doesn't crash.

Actual Results:

For some people, DS crashes when a new icon is observed in the text panel.

Does the problem occur:
Every time? Or how often? for some players every time
In other games? unknown
In other user accounts? yes
On other computers? yes

When does the problem NOT occur?

previous versions of BYOND

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

483

Workarounds:

downgrade BYOND
I logged into FFO (for future reference, a link to the game is always best), but I'm really not sure what you mean about asking a PC icon checker to upload a file. The steps you posted just aren't straightforward enough for me to follow.

A demo project that shows the issue in action on an easy-to-reproduce basis would be extremely helpful. Based on your mention of fcopy() though I wouldn't be surprised if this is the same issue being seen in 3101.

[edit]
I forgot to mention this, but I also did a test of outputting files to the text window after they were uploaded. I encountered no issues there.
Lummox JR wrote:
I logged into FFO (for future reference, a link to the game is always best), but I'm really not sure what you mean about asking a PC icon checker to upload a file. The steps you posted just aren't straightforward enough for me to follow.

Perhaps I could show you "in person" some time tomorrow?

A demo project that shows the issue in action on an easy-to-reproduce basis would be extremely helpful. Based on your mention of fcopy() though I wouldn't be surprised if this is the same issue being seen in 3101.

I don't think this is something I can easily turn into a standalone demo given the peculiarities. However, I think this is a different issue since the icon itself saves properly. And like I said, once DS crashes and you reconnect, the icon shows up just fine. (Or if you're one of the lucky ones, it will show up fine in the first place.)

[edit]
I forgot to mention this, but I also did a test of outputting files to the text window after they were uploaded. I encountered no issues there.

You may fall into the same category as me. When I upload an icon, I'm immune to the crashes (e.g. when using Who). However, others who used Who crash as a result. and vice versa.
What might help more is seeing the code you're using to manipulate the icons via fcopy() and file() and whatnot. That should tell me if this is the same issue as 3101 or not.
Since fcopy() was fixed, I'm wondering if you're now seeing any issues with this in 485.
There are still some issues when using 486, though it's nowhere near as bad as it was before.

The bug I reported above was encountered before I moved to my new apartment and seems to have been fixed. Since my internet connection (at the new apartment) is a bit flaky, I can't say with any certainty that the recent crashes are due to BYOND; in the mean time I'm assuming that Comcast is to blame.

However, I have been getting reports of another icon bug that doesn't crash DS. The reports are that "multi-tile" monsters are showing as just a single tile as though the rest of the icon had been cropped off. When people close and re-open DS with an icon-bugged monster nearby, the monster then appears as a normal multi-tile monster. I can post this as a new report if you prefer. I will attempt to verify it this afternoon.
Yes, a new report would be best for that. I'll move this to Unverified but if any evidence surfaces that it's still present I'll be happy to investigate further given a test case.
This bit of code seems to be crashing a subset of FFO players:

mob/NPC/Default/Argo/Baigan
icon = 'Custom NPCs.dmi'
icon_state = "Baigan"
New()
..()
spawn(50)
var
icon/I = new(icon)
I2 = "<IMG CLASS=icon SRC=\ref[I.icon]'> <font color=red><B>"
for()
for(var/mob/PC/M) M << "[I2]Baigan says: ...</B>"


My apologies for the very sloppy code, which was copied from an old version of the game. In any case, it seems to be crashing certain people who see it 100% of the time.