logo logo

 Back to main page

The NWNX Community Forum

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
NWNX on Linux not INIT for me?

 
Post new topic   Reply to topic    nwnx.org Forum Index -> Linux technical support
View previous topic :: View next topic  
Author Message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Aug 05, 2013 1:14    Post subject: NWNX on Linux not INIT for me? Reply with quote

Quote:

NWN Extender v2.8-dev
RESET plugin registered.
CONNECT plugin registered.
MNX plugin registered.
FIXES plugin registered.
SERVERLIST plugin registered.
TWEAKS plugin registered.
EVENTS plugin registered.
AREAS plugin registered.
FUNCTIONS plugin registered.
FUNCSEXT plugin registered.
DEFENSES plugin registered.
NAMES plugin registered.
HAKS plugin registered.
DMACTIONS plugin registered.
OPTIMIZATIONS plugin registered.
CHAT plugin registered.
SYSTEM plugin registered.
RESMAN plugin registered.
VISIBILITY plugin registered.
PROFILER plugin registered.
WEAPONS plugin registered.
EXTEND plugin registered.
HASHSET plugin registered.
ODMBC_MYSQL plugin registered.
STRUCTS plugin registered.
TMI plugin registered.
FUNCS plugin registered.
SPELLS plugin registered.
* NWNX2 activated.
INIT(O): valid ret=0x08203e79
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.


Those Failed Init messages continue for several hundred lines. (I think they may be generated each time nwnx areas was invoked.)

But I definitely called NWNX!INIT on the modLoad event - you can even see it above the Failed Messages here.

After these Failed Init messages, I get

Quote:

FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
INIT(S): valid ret=0x082041ec
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.


Quote:

* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.


Can someone suggest a course of action?

I cant seem to find a nwnx include file for the odmbc plugin - so I dont know if I have the wrong plugin prefix etc - do I need to update my aps_include to use a different ODBC name etc

Also - what are the failed init messages- how do I fix?
Back to top
View user's profile Send private message
virusman



Joined: 30 Jan 2005
Posts: 1020
Location: Russia

PostPosted: Mon Aug 05, 2013 11:05    Post subject: Reply with quote

Add SetLocalString(GetModule(), "NWNX!INIT", ""); to OnModuleLoad. You're only calling GetLocalObject. You need to call both.
ODBC!FETCH doesn't exist because ODBC failed to initialize.
_________________
In Soviet Russia, NWN plays you!
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Aug 05, 2013 11:09    Post subject: Ah ok Reply with quote

Cool, I will try that tonight when I get home.

Can you explain the significance of the INIT?
It didnt seem to be required on Windows,

Also - do you know if the nwnx odbc stuff is otherwise the same as the windows odbc?

Just wondering if I need to change my aps_include file etc to use different variable names etc.


Just out of curiosity - what order should I call the INIT bit?

Eg
SetLocalString(GetModule(), "NWNX!INIT", "");
GetLocalObject(GetModule(),"NWNX!INIT");

or should it be the otherway around?

My work is gonna be cut out for me this week - as my server provider has told me that they are no longer hosting dedicated servers anymore, so I have to move from windows to linux (hosted on amazon ec2) - looks like nwnx plugins dont like Amazon Windows Instances - something to do with the virtualization I imagine - causes ntdll.dll to crash.
Back to top
View user's profile Send private message
virusman



Joined: 30 Jan 2005
Posts: 1020
Location: Russia

PostPosted: Mon Aug 05, 2013 13:43    Post subject: Reply with quote

INIT calls are required because Linux NWNX hooks SetLocalString & GetLocalObject differently than it does on Windows (it has to get the correct caller address).
Order of INIT calls is irrelevant.
_________________
In Soviet Russia, NWN plays you!
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Aug 05, 2013 21:19    Post subject: Reply with quote

Didn't seem to work,
Can you confirm if this is the latest nwnx app for Linux?

NWN Extender v2.8-dev


Im now calling both Set and Get for the

SetLocalString(GetModule(), "NWNX!INIT", "");
GetLocalObject(GetModule(),"NWNX!INIT");

In module load- but I still get the same INIT errors, and the same ODBC spam.

Suggestions?

Also noticing the logs aren't rotating - is that a windows only feature, or do I indeed have an old version of the app?


On mod load script as seen below

Quote:




void main()
{
GetLocalObject(GetModule(), "NWNX!INIT");
SetLocalString(GetModule(), "NWNX!INIT","");
SetMaxHenchmen(3);
WriteTimestampedLogEntry("Setting Max Henchmen to 3.");
// Init placeholders for ODBC gateway
SQLInit();
// Init placeholders for chat gateway
InitSpeech();
SetModuleSwitch(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS ,TRUE);
int iCurrentTMI = GetTMILimit();
int iDesiredTMI = iCurrentTMI*8;
WriteTimestampedLogEntry("Changing TMI Limit from "+IntToString(iCurrentTMI)+" to be "+IntToString(iDesiredTMI));
SetTMILimit(iDesiredTMI);
DelayCommand(10.00,ExecuteScript("doarea_settings",OBJECT_SELF));

Back to top
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Aug 05, 2013 21:59    Post subject: Reply with quote

Ok,
Looks like I needed to set the string value to be 1 to get it to register, this is what I now get.


................................................................
Server: Module loaded
INIT(O): valid ret=0x08203e79
INIT(S): valid ret=0x082041ec
* Library ODBC!SPACER does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
Segmentation fault (core dumped)
Back to top
View user's profile Send private message
virusman



Joined: 30 Jan 2005
Posts: 1020
Location: Russia

PostPosted: Tue Aug 06, 2013 0:08    Post subject: Reply with quote

Check odbc logs for errors.
_________________
In Soviet Russia, NWN plays you!
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Tue Aug 06, 2013 0:48    Post subject: Reply with quote

ah
Looks like the odmbc plugin needs to be named odbc - I just assumed that it runs as is after the compile.

I did notice that the pre-compiled version that elven is hosting on his Jenkins site is a difference size than the one I compiled from the git sources.

Also - My resman is not reporting any resource detections.
Eg: When the demand occurs, on windows it normally said that the resource was located, and used (external vs internal)

On Linux, im not seeing any messages, only the startup one that says that its hooked the demand location etc, then nothing else.

Is the implementation different for nwnx resman on Linux?
Back to top
View user's profile Send private message
virusman



Joined: 30 Jan 2005
Posts: 1020
Location: Russia

PostPosted: Tue Aug 06, 2013 11:22    Post subject: Reply with quote

Baaleos wrote:
Also - My resman is not reporting any resource detections.
Eg: When the demand occurs, on windows it normally said that the resource was located, and used (external vs internal)

On Linux, im not seeing any messages, only the startup one that says that its hooked the demand location etc, then nothing else.

Is the implementation different for nwnx resman on Linux?
Set debuglevel to a higher number (3 or 4).
_________________
In Soviet Russia, NWN plays you!
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    nwnx.org Forum Index -> Linux technical support All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group