[Fixed?] Client freezing

Found a bug in UOX3? Or experienced a server crash? Perhaps you've noticed a broken feature? Post the details here!
Post Reply
supremoleet
UOX3 Neophyte
Posts: 28
Joined: Fri Sep 01, 2006 3:37 am
Has thanked: 0
Been thanked: 0
Contact:

Client freezing

Post by supremoleet »

Identified this issue on multiple platforms over the past few days... making some selections in the 'ADD menu causes the client to freeze solid after taking a few steps. The next menu never appears and the client freezes up -- no matter how long you wait, it never unfreezes.

However, this does not seem to affect the server itself. The server continues to function normally and no one else in-game is affected. Some options on the 'ADD menu work... some of the ones that don't (which cause this freezing issue) are the building menu and the scrolls submenu under Magic.

When this happens, the server does not indicate that any strange/invalid packets or messages were received.

Any idea what would cause this? I've verified it on the following setups:
  • Gentoo Linux 2.6.16-r13 running KDE 3.5.2, Wine 0.9.8, and UO 2D 5.0.4d. Encryption removed with UO_Rice
  • Windows XP Pro SP2 and UO 2D/3D 5.0.4d. Tried with UOGateway and UOGLite.
  • A second Windows XP Pro SP2, UO 2D 5.0.4d with UOGateway.
I'm running UOX 0.98-3.7g.
Last edited by supremoleet on Fri Sep 22, 2006 9:11 pm, edited 1 time in total.
supremoleet
UOX3 Neophyte
Posts: 28
Joined: Fri Sep 01, 2006 3:37 am
Has thanked: 0
Been thanked: 0
Contact:

Post by supremoleet »

That might be why... Okay so I tracked down one of the places where it freezes. ADD | Building | Floors, when I click on "Stone Floors" it freezes. So I track through it in the UOX files...

./dfndata/items/ItemMenu.dfn

Searching for "Floors", I find:

Code: Select all

[ITEMMENU 2]
{
...
<=Floors
ITEMMENU=19
...
}
I then searched for "ITEMMENU 19":

Code: Select all

[ITEMMENU 19]
{
floors=Menu
<=Cave Tiles
ITEMMENU=62
<=Stone Tiles
ITEMMENU=61
<=Wooden Tiles
ITEMMENU=63
<=Previous Menu
ITEMMENU=2
}
Okay, so there's the point where it fails: Stone Tiles, #61. I search for "ITEMMENU 61" next -- not found.

The same is true for the "Scrolls" menu -- ITEMMENU 116. It doesn't exist. So it appears it is freezing because it can't find these sections.

Next, I tried to search elsewhere for this menu section.

uoxadmin@dominus /uox $ grep -iR "ITEMMENU 61" .
./dfndata/items/ItemMenu.bulk.dfn:[ITEMMENU 61]

Found it -- it exists, but not where I expected it. I'm not sure if that's correct or not. I accepted the possibility that maybe it's supposed to be in the separate file and that somehow this file because of its name escaped my dos2unix conversion script. Ran dos2unix directly on it. Reloaded DFNs, tried again -- freezes still.
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

Does this affect clients connected both locally (or over a LAN) as well as ones connected online? I just tested both the Stone Tiles and Scrolls add-menus here over my LAN connection and they both appear as they should. (UO Client 5.0.4e and UOG 1.9.1266 (Beta) on Windows 2000, UOX3 0.98-3.7h on Windows XP)

What could be causing the problem is the huge size of those menus, perhaps the client can't handle the flow of information, or something.

As for the deal with itemmenu.dfn and itemmenu.bulk.dfn is basically that the navigation menus go in itemmenu.dfn, while the menus with actual items in them go in itemmenu.bulk.dfn.
-= Ho Eyo He Hum =-
supremoleet
UOX3 Neophyte
Posts: 28
Joined: Fri Sep 01, 2006 3:37 am
Has thanked: 0
Been thanked: 0
Contact:

Post by supremoleet »

This is interesting.

So I have 3 servers set up. One set up as my external IP, one as local (127.0.0.1), and one as the internal router IP (192.168.1.52), depending on where I'm connecting from.

Logging in on the same machine as the server to both 192.168.1.52 and 127.0.0.1 -- works fine, doesn't freeze. Logging in on the same machine but going out to the external IP, it freezes.

Logging in to the router or external IP from a different machine causes freezing, as does logging in to the external IP from outside my router. So it seems that any remote connection has the issue.
Maarc
Developer
Posts: 576
Joined: Sat Mar 27, 2004 6:22 am
Location: Fleet, UK
Has thanked: 0
Been thanked: 0
Contact:

Post by Maarc »

The feeling of client freezing is definitely packet related. Essentially, if the server keeps going and the client gets stuck, it's usually an indicator that the server has sent all the data, but the client hasn't received it all.

Which is weird, because, let's face it ... it's TCP, not UDP. It guarantees delivery. So as long as the server does send it right, it should all get there.

Now, I'm not able to repeat it here. However, you might be able to diagnose some of it. Does this happen only for specific menus? If so (and here's my guess), are the menus reasonably large in size? Do they contain a lot of elements? My guess is that is what it would be ... that we're sending a jumbo packet, and for whatever reason (link quality, MTU fragmentation, weird part of the tcp library), it's just not arriving properly.
supremoleet
UOX3 Neophyte
Posts: 28
Joined: Fri Sep 01, 2006 3:37 am
Has thanked: 0
Been thanked: 0
Contact:

Post by supremoleet »

Yes, the issue only happens on specific menus. The interesting thing of note is that some of the ones whch work are relatively large menus, larger than some of the ones on the list below. I went through the painstaking process of verifying these. :)

These are the menus which cause the client to freeze:

gm menu | moongate
building | decs | banners
building | decs | blood
building | decs | dungeon gear
building | decs | kitchen
building | decs | misc
building | decs | multi-objects
building | decs | plants|plants
building | decs | plants|trees
building | decs | rugs and carpets
building | decs | siege
building | decs | siege 2
building | decs | siege 3
building | decs | stoneart
building | doors | metal
building | doors | wooden
building | doors | gates
building | floors | stone tiles
building | floors | wooden tiles
building | furniture | beds
building | furniture | chairs
building | furniture | coffins
building | furniture | garbled furniture
building | furniture | sarcophaguses
building | furniture | tables
building | lighting
building | signs
building | walls | other walls
building | walls | plaster walls
building | walls | rattan hide walls
building | walls | stone walls
building | walls | stone walls 2
building | walls | tent walls
building | walls | wooden walls
houseaddons | npc statues | monster statues
houseaddons | npc statues | animal statues
magic | scrolls
misc | foods 2
skills | tools | alchemy
Regnakhan
UOX3 Newbie
Posts: 17
Joined: Tue Oct 30, 2012 9:39 am
Has thanked: 0
Been thanked: 0

Post by Regnakhan »

Hi,

Sorry to grave digging this post, but I have the exact same problem.

For example, when I try to open the Building->Walls->Stone Walls 1 & 2, it freezes every time.

I have new info though (I might be more patient lol), after waiting 5 minutes, the menu opens (in sort of Chinese though).
But I can choose only in the first page.
Then, when I reload the menu after that long loading time, it works.
Weird huh ?

My config is :
-Server : Ubuntu
-Client : 7.0.27.9

Thx for help

PS : this is not an urgent problem, as it seems to finally work ^^
Diamont Shard
http://www.diamont.be
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

Unless there are some bugs in the setup of those menus (see ItemMenu.dfn and ItemMenu.bulk.dfn), the problem is most likely just a matter of size. Splitting those menus into smaller sub-sections should, in that case, do the trick.

By the way, I see you're using client 7.0.27.9... what did you do to make UOX3 read the mapfiles and such correctly? Using converted files (from uop to mul)?
-= Ho Eyo He Hum =-
Regnakhan
UOX3 Newbie
Posts: 17
Joined: Tue Oct 30, 2012 9:39 am
Has thanked: 0
Been thanked: 0

Post by Regnakhan »

Thanks for the trick !
I might try to change the Menus' size. ^^

For using client 7.0.27.9, I used the files from http://ruosi.org/news/uo_classic_client ... 2-05-22-34, like in one of your posts.
It worked pretty fine.
Diamont Shard
http://www.diamont.be
Post Reply