allocation ???

Report core bugs regarding the Ultima Online Emulator Core release (version 097). You can attach your Core Dump. One bug per post.
Locked
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

allocation ???

Post by coltain »

Code: Select all

Expected packet hook function for msg d6 but was null!
[09/27 20:40:07] Unable to read script 'pkg/skills/cooking/main/fish.ecl'
[09/27 20:40:11] error in create_thread: 12 8 "Not enough space" "Not enough space" 2 5612240 SocketClientThread 5599904 0 1802582304
Expected packet hook function for msg d6 but was null!
Unable to read script 'pkg/skills/cooking/main/fish.ecl'
[09/27 20:40:15] Exception in: scripts/ai/city_guard_default.ecl: bad allocation
 PC < nLines: (d.2950:  2950: get member id 'z' (2)
2951:  2951: Func(6,0): Self
2952:  2952: get member id 'realm' (113)
2953:  2953: 3L
2954:  2954: 40L
2955:  2955: Func(4,42): FindPath
2956: >2956: [] := (1) #
2957:  2957: global #43
2958:  2958: "main"
2959:  2959: [] 1
2960:  2960: !
Exception in: scripts/ai/city_guard_default.ecl: bad allocation
 PC < nLines: (d.2950:  2950: get member id 'z' (2)
2951:  2951: Func(6,0): Self
2952:  2952: get member id 'realm' (113)
2953:  2953: 3L
2954:  2954: 40L
2955:  2955: Func(4,42): FindPath
2956: >2956: [] := (1) #
2957:  2957: global #43
2958:  2958: "main"
2959:  2959: [] 1
2960:  2960: !
can anyone tell me what is wrong???

shard is running well for about 24h, then memory allocation problem is shown on the terminal and nothing else can work (all new scripts cause allocation problem)

If script code will help i`ll put it...

I dont know nothing about windows, memory alloctaing and others
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

bleh... still no reply???

system: Windows 2003 server
is it caused by pol or system???
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

Expected packet hook function for msg d6 but was null!
[09/27 20:40:11] error in create_thread: 12 8 "Not enough space" "Not enough space" 2
First, check your packet hook for packet 0xD6.

Second, the create_thread error caused all the others. Looks like you ran out of memory??? If it happens again, check mem usage on pc also. If any crash dumps was created, post them.
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

i rewrited whole 0xd6 packet

Code: Select all

Packet 0xD6
{
  Length variable
  SendFunction rcliloc:HandleMegaClillocSend
}
function: [edited;p]

Code: Select all

use uo;
use os;
use util;
use polsys;
include "include/attributes";

const OFFSET_OBJECT_SERIAL   := 0x05;
const OFFSET_CLILOC_ID       := 0x0F;
const OFFSET_LENGTH_ID       := 0x13;
const OFFSET_UNICODE_TEXT    := 0x14;

program rcliloc()
    Print( "Podlaczam mega cliloc" );
    return 1;
endprogram

exported function HandleMegaClillocSend(kto, byref packet) 

  var it := SystemFindObjectBySerial(packet.GetInt32(OFFSET_OBJECT_SERIAL));

	if ( it )
    
		packet.SetSize(15);

		var Object_Name;
		//var Text_Color := "CBA300";

		if( it.IsA(POLCLASS_MOBILE) )
            Object_Name := it.name;

        elseif ( it.IsA(POLCLASS_ITEM) )
            Object_Name := it.desc;
        endif
        
		// Object_Name := CAscZ("<BASEFONT COLOR=#" + Text_Color + "><C>" + Object_Name);
		Object_Name := CAscZ(Object_Name);

		packet.SetInt32(OFFSET_CLILOC_ID, 1042971);
		packet.SetUnicodeString(OFFSET_UNICODE_TEXT, Object_Name, 1);
		packet.SetInt16(OFFSET_LENGTH_ID, Object_Name.Size() * 2);
        
		var Html := "<BASEFONT COLOR=#FFFFFF><C>";
		var xDesc := "";

//-------------------------------------------------------------insert------------------------------------
    
 //edited ;p
//----------------------------------------------------------------------------------------------------------
		xDesc := CAscZ(xDesc);

		if ( xDesc.Size() > 0 )
			packet.SetInt32(packet.GetSize() - 1, 1070722);
			var Length_ID := packet.GetSize();
			packet.SetUnicodeString(packet.GetSize() + 1, xDesc, 1);
			packet.SetInt16(Length_ID, xDesc.Size() * 2);
		endif

		packet.SetInt32(packet.GetSize(), 0);
	endif

	return 0;
  

endfunction 

run out of memory?? so is there a leak???

i had one core dump, i dont know if its related

the more players, the shorter time to recive memory allocation info
Attachments
POL097-2007-08-23 RC5 Coregina-20071010074813-0.dmp
Hope this will help
(80.93 KiB) Downloaded 523 times
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

In the crash dump is memory allocation errors involving a string in a script.

First things first, please try using RC4 for a few days, see if the crashes go away (there was a packethook fix in RC5, I want to rule out that affecting you).
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

After some testing:

1. I tried this: http://forums.polserver.com/ftopic1793.php but it didn`t help

2. I tried POL097RC4. The allocation problem appears much sooner then 097RC5. Here are some cuts from pol.log:

Code: Select all

POL IS WORKING OK
[10/20 01:44:13] Client#4: Switching to queued data mode (1, 32 bytes)
Client#4: Leaving queued mode (41 bytes xmitted)
[10/20 01:44:24] Expected packet hook function for msg d6 but was null!
[10/20 01:44:25] Client#4: Switching to queued data mode (1, 29 bytes)
Expected packet hook function for msg d6 but was null!
Client#4: Leaving queued mode (592 bytes xmitted)
[10/20 01:44:27] Expected packet hook function for msg d6 but was null!
[10/20 01:44:28] Client#120: Switching to queued data mode (1, 9 bytes)
Client#120: Leaving queued mode (154 bytes xmitted)
[10/20 01:44:35] Expected packet hook function for msg d6 but was null!
Expected packet hook function for msg d6 but was null!
[10/20 01:44:37] Client#4: Switching to queued data mode (1, 16 bytes)
[10/20 01:44:38] Client#4: Leaving queued mode (48 bytes xmitted)
[10/20 01:44:47] Client#4: Switching to queued data mode (1, 15 bytes)
[10/20 01:44:48] Expected packet hook function for msg d6 but was null!
Client#4: Leaving queued mode (87 bytes xmitted)
[10/20 01:44:49] Expected packet hook function for msg d6 but was null!
[10/20 01:44:52] sysload=26 (48) cputime=4906250
[10/20 01:44:55] Client#4: Switching to queued data mode (1, 15 bytes)
[10/20 01:44:57] Client#4: Leaving queued mode (47 bytes xmitted)
.
.
.
AND???????????????????????????????????????
[10/20 02:28:01] [pkg/systems/save/main/saves.ecl]: [Zapisano stan swiata w 3906 ms]
[10/20 02:28:12] sysload=20 (3) cputime=7265625
[10/20 02:28:28] Expected packet hook function for msg d6 but was null!
[10/20 02:28:31] Exception in: scripts/ai/city_unmerchant.ecl: bad allocation
 PC < nLines: (cal #1830:  1830: [] 1
1831:  1831: Func(0,0): CInt
1832:  1832: global #47
1833:  1833: <>
1834:  1834: "stock"
1835:  1835: Func(4,1): GetProperty
1836: >1836: !
1837:  1837: ||
1838:  1838: if false goto 1850
1839:  1839: "undata"
1840:  1840: Func(2,10): GetGlobalProperty
Exception in: scripts/ai/city_unmerchant.ecl: bad allocation
 PC < nLines: (cal #1830:  1830: [] 1
1831:  1831: Func(0,0): CInt
1832:  1832: global #47
1833:  1833: <>
1834:  1834: "stock"
1835:  1835: Func(4,1): GetProperty
1836: >1836: !
1837:  1837: ||
1838:  1838: if false goto 1850
1839:  1839: "undata"
1840:  1840: Func(2,10): GetGlobalProperty
Exception in: scripts/ai/city_unmerchant.ecl: bad allocation
 PC < nLines: (cal #1830:  1830: [] 1
.
.
.  MORE OF THIS ERRORS
AND IT COMES TO THIS:
[10/20 02:28:40] Expected packet hook function for msg d6 but was null!
[10/20 02:28:52] Exception in: pkg/skills/tailoring/DShroud/control.eclerror_: bad allocation
 PC < nLines: (e
Exception in: pkg/systems/combat/CLCombat.eclception in: : bad allocation
 PC < nLines: (Lines: (ictionaryTasks Thread exits due to exception: bad allocation
Client#120: Exception in message handler 0x34: bad allocation
0000: 34 ed ed ed ed 04 00 11  81 89                     4....... ........
Client#120: Exception in i/o thread: bad allocation! (checkpoint=4)
Client#120 (87.205.212.210): disconnected (account branholm54)
Client#120: Exception in i/o thread! (checkpoint=4, what=bad allocation)
Client#120: Disconnecting client due to send() error (1): 10038
Client#149: Exception in message handler 0x06: bad allocation
0000: 06 46 e6 3b fb                                     .F.;.... ........
Client#149: Exception in i/o thread: bad allocation! (checkpoint=4)
TILL THE END (I SHUT IT BY X BECOUSE IT HAS TROBLES WITH EXITING)
So that`s it...

By the way. What this kind of error means:
Socket:: nowait.ecl: error 10038
Socket:: nowait.ecl: error 10056

(something may by wrong (numbers or text). If it is important i will put all of this error as it is showing on a console)

Thanks
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

I disabled the 0xd6 packet (by removing directory) but i still recive a message:
Expected packet hook function for msg d6 but was null!

Maby it`s the client??? I use ML5065 client. I dont know what else could do it..
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

When I saw your earlier uopacket.cfg, I didn't see a receive function defined. Maybe you just didn't post the entire cfg file.
The one from the forums and the one I use has it like this:

Code: Select all

Packet 0xD6
{
	Length 		variable
	SendFunction	toolTips:MegaCliloc
}


// This subpacket is sent by the client to the server to see if
// 0xD6 needs to be sent.
SubPacket 0xBF 
{
	SubCommandID		0x10
	ReceiveFunction		toolTips:MegaCliloc
}
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

I didn`t have this. I don`t know how this works (why the same function is pointed) but ok, I add it. Lets hope it will help.

And I checked this error:

Socket:: send_nowait() error: 10053
Socket:: send_nowait() error: 10038
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

It didn`t help. Still the same info about packet 0xd6.

I`m completly lost for now...
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

I use the identical megacliloc function that you use except I NEVER have any errors, and the megaclilocs are in heavy use for all manner of things.

In the section you edited out, perhaps lies the clue maybe?

I suggest you try replacing your entire edited out section with a simple tooltip to test:

Code: Select all

if ( it.IsA(POLCLASS_CONTAINER) )
	if ( item.locked )
		xDesc := xDesc + Html + "Locked" + "<br";
	endif
endif
Now nothing should show except when you target a container.

I also use 5.0.9.1 with no problems.
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

But my packet sends name (or desc) even if I have nothing in my EDITED part???

My Game Masters think that memory usage (or some leak) is caused by AI scripts) - I noticed a big (4MB) growth of memory usage when monster is attacking (trying to find a path)

So I`m waiting for a distro scripts of AI
coltain
Grandmaster Poster
Posts: 159
Joined: Tue Mar 20, 2007 7:17 am

Post by coltain »

I don`t think this is memory problem (I recived "allocation error" message when POL used 500MB and 1100MB)

I`m confused....
Locked