ID:118794
 
Resolved
Dynamic icons sometimes did not appear. (Thanks to Stevenw9 for help in testing.)
BYOND Version:490
Operating System:Windows 7 Home Premium 64-bit
Web Browser:Firefox 6.0.1
Applies to:Dream Seeker
Status: Resolved (493)

This issue has been resolved.
Descriptive Problem Summary:

Since I've started using the 490 update (including betas) I've noticed that loading dynamic resources seems to fail about half the time, simply not displaying at all. This is very noticeable in NEStalgia as all player icons are dynamic.

Numbered Steps to Reproduce Problem:

1) Join any game using dynamically generated graphics.

2) Notice approximately half of the graphics fail to load.

Code Snippet (if applicable) to Reproduce Problem:


Expected Results:

All images to display properly.

Actual Results:

Certain images fail to load.

Does the problem occur:
Every time? Or how often? Approx. 50% of the time
In other games? Yes
In other user accounts? Yes
On other computers? Yes

When does the problem NOT occur?

It's possible to force everything to load properly by exiting the game, clearing the cache, reloading the game (which you'll notice causes even more images to fail to load), exiting the game once more, and then reloading the game again, at which point things SHOULD load correctly and will continue to load correctly in subsequent visits.

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.)

Workarounds:

See above.

Confirmed problem in v492. Playing Phoenix Sundered Earth or Battle Universe X (Previously Lizard Sphere X). Custom player icons tends to stop displaying because of some sort of error in the servers cache, which causes the rest of us to only partially download the cache.

Why this is happening I am not sure. Exiting, clearing, and reloading works to fix the immediate invisible icon issues, but then other people start not displaying.

Edit: This seems to happen more frequently the longer a servers up time is kept. It becomes incredibly easy to see after about two or three days of consistently hosting one of the listed games above without ever shutting down or rebooting. The problem may just be the sheer number of custom icons being crammed into the cache, it may not, but I hope this helps.
To be clear, Stevenw9, this has only started happening since the 490 version?
Tom wrote:
To be clear, Stevenw9, this has only started happening since the 490 version?

I've experienced something like this before in the project BYOND Tabletop Gaming, but I think that was attributed to a problem in Javascript. Since then I haven't ever seen the problem up until 490+ in combination with the projects I listed. I have not tested other projects yet.

The reason I'm suspecting that it's a cache file problem is because when other people change your icon in these projects, the name will come up as a memory address. (I.E. 0x00F... and such)
I'm really not sure what you mean about the name. Can you explain that in more detail? Where are you seeing a name, and what does it actually say? What do you mean about other people changing your icon?
Lummox JR wrote:
I'm really not sure what you mean about the name. Can you explain that in more detail? Where are you seeing a name, and what does it actually say? What do you mean about other people changing your icon?

I can only go into so much depth as these aren't my projects. My intention was to add what information I could, so I'll explain this to the best of my ability.

Within these two projects is a verb which allows you to set your own or another players icon. This verb has you select an image file from your own computer to use, whether it's on yourself or another person. This image is then applied as an icon. Where X would be the image file, this is output to the user through alert() as text. This output reads as a memory address like said in my previous comment.
Thanks, that's definitely a lot clearer to me now. Having the actual address shown used might be helpful, as it's possible that it could be a reference instead. If it is a reference, it might point to where the process is breaking down.
Lummox JR wrote:
Thanks, that's definitely a lot clearer to me now. Having the actual address shown used might be helpful, as it's possible that it could be a reference instead. If it is a reference, it might point to where the process is breaking down.

0xc000c86 (From Phoenix)
That's a reference, all right. It's a cache reference, more specifically. I'll see what I can dig up with that.
Lummox JR wrote:
That's a reference, all right. It's a cache reference, more specifically. I'll see what I can dig up with that.

Alright. You should know the server I used to test this issue for the reference is @ byond://77.251.104.85:8444 in case that will help at all. So far I can't find anyone who hasn't complained about watching people go invis as soon as they change their icon, yet the person who changed their icon says it looks fine. Unless they change another persons icon, then that person will go invisible and everyone will see that effect.
I managed to see the bug in action in that game on two brief occasions, but not afterward. Unfortunately it's difficult to reproduce a bug at all in a live game, and in this case while I did get the bug to happen, it never occurred when I was tracing in the debugger, nor in any kind of reliable way. The two times I did get it to happen were different: One was due to another player changing my icon, and another from using the CopyIcon verb (which, annoyingly, requires consent from the other person, and even more annoyingly was seldom allowed by the players). After the two successes I never had it happen again, even after quitting the game, clearing my cache, and coming back.

I think the name thing you're seeing is strictly an artifact of bad programming, as it showed up in an input() box and it seemed that the author was trying to actually make an icon appear in the text. So that part appears to be irrelevant to the issue.

At this point I really despair of finding the issue without even a semi-reliable test case. If there was a way to always trigger the issue on a certain game in a predictable way, one that didn't rely on the cooperation of undependable players, that would be a huge step in the right direction.
This problem may be present in BE on the Zeus server. Hair doesn't appear. This is more or less a "rip" of the game, so I can't guarantee the code wasn't just broken, but the problem seems to appear consistently.
Can you give me exact instructions how to make the issue appear?
- Login
- Create a Soul Reaper (or other class with hair)
- Try various hairstyles. Note that several of them won't appear on your character, though several will.
- Once you enter the tutorial area, you'll notice that several of the NPCs are also unintentionally bald.
EDIT: I have relogged 3 times now, on this 3rd time, the 'Newbie Trainer' NPC is now bald. He had hair on previous logins.
EDIT 2: Even though the hairstyles won't appear on your character, they still appear in the HTML preview window (for me at least). These should be using nearly identical mechanics, aside from the final display method, where one is added to overlays, and the other is browse_rsc(ed).
EDIT 3: After relogging a few more times, it appears that the invisible hairstyles during character creation are random each time.
Lummox JR wrote:
I managed to see the bug in action in that game on two brief occasions, but not afterward. Unfortunately it's difficult to reproduce a bug at all in a live game, and in this case while I did get the bug to happen, it never occurred when I was tracing in the debugger, nor in any kind of reliable way. The two times I did get it to happen were different: One was due to another player changing my icon, and another from using the CopyIcon verb (which, annoyingly, requires consent from the other person, and even more annoyingly was seldom allowed by the players). After the two successes I never had it happen again, even after quitting the game, clearing my cache, and coming back.

I think the name thing you're seeing is strictly an artifact of bad programming, as it showed up in an input() box and it seemed that the author was trying to actually make an icon appear in the text. So that part appears to be irrelevant to the issue.

At this point I really despair of finding the issue without even a semi-reliable test case. If there was a way to always trigger the issue on a certain game in a predictable way, one that didn't rely on the cooperation of undependable players, that would be a huge step in the right direction.

I do apologize for that. My resources are very limited in this area, as I do not use a function like this in my own projects.
Hey all, just wanted to chime in here, that this problem has, if I understand the issue properly, been appearing in Phoenix (And prior projects) intermittently for much longer then just 490.

While the given files we tested it out on (When it didn't work. Really, the problem occurred randomly, so it was hard to ever test it properly. Which in turn made it hard to figure out if it was an issue related to the code we inherited, or if it was something on the Byond side of things.) would not load, waiting awhile or selecting a copy of the same file often seemed to fix it.


While I don't know too much about how Byond handles this on the back-end, it makes me think it has something to do with actually uploading the file to be displayed (Phoenix allows users to upload icons to the game, which they can then use.), which would be a connectivity/lag/file ID issue.

We've never encountered this problem en-masse before, however. And I haven't gotten any reports of it occurring recently in large quantities. I also haven't noticed it in any other capacity. I'll keep an eye out and report back if it does start to pop up more frequently, however.