Comments (10)
That error means that the NWNX_SQL build you're using was not built with MySQL support.
If you built it yourself, this probably means you're missing the dev headers for mysql, and the build skipped it; you'll have gotten a warning at buildtime. Try installing libmysqlclient-dev:i386
(note the 32bit suffix) and rebuilding. Or maybe download the binaries from the CI.
As for the script request, I use this one: https://gist.github.com/mtijanic/50b6c70a5c1088fbd74e351abcd13e01
from unified.
Thanks, that's very helpful. So I tried rebuilding after installing libmysqlclient-dev:i386
. I can now start the server without errors using with the Core and SQL .so files.
Neverwinter Nights Server
Build:8156
Copyright BioWare Corp 1998-2004
Registering crash signal handlers.
Server: Loading...
Working Directory For Game Install Is:
Working Directory For Your Resources Is: /home/user/.local/share/Neverwinter Nights
I [11:07:27] NWNX_Core: Server is running version 8156.
I [11:07:27] NWNX_Core: Loading plugins from: .
I [11:07:27] NWNX_SQL: Connecting to type MYSQL
I [11:07:27] NWNX_SQL: Connection info: host=localhost username=root
I [11:07:27] NWNX_Core: Loaded plugin 0 (SQL) v1 by Liareth.
Server: Running...
Unfortunately when I try to load a bare-bones module it won't load:
Server: Loading module "testmod"..
Server: Unable to load module
Server: Exiting...
I [11:07:27] NWNX_Core: Unloaded plugin 0 (SQL).
... and when I try to load my actual module I experience a hard crash:
=== Backtrace
./nwserver-linux(+0x394990)[0x803f1990]
./nwserver-linux(+0x3944a0)[0x803f14a0]
./nwserver-linux(+0x394a31)[0x803f1a31]
[0xb77a8cf0]
./nwserver-linux(+0x428e3)[0x8009f8e3]
./nwserver-linux(+0x43083)[0x800a0083]
./nwserver-linux(+0x642a2)[0x800c12a2]
./nwserver-linux(+0x644fc)[0x800c14fc]
./nwserver-linux(+0x7309e)[0x800d009e]
./nwserver-linux(+0x62a7e)[0x800bfa7e]
./nwserver-linux(+0x5fa8e)[0x800bca8e]
./nwserver-linux(+0xe4159)[0x80141159]
./nwserver-linux(+0xed1a2)[0x8014a1a2]
./nwserver-linux(+0x1ce29f)[0x8022b29f]
./nwserver-linux(+0xca046)[0x80127046]
./NWNX_Core.so(_ZN7NWNXLib8Services9HooksImpl23HookLandingHolderSharedINS_7Hooking17CallingConvention8ThisCallEE11HookLandingILj825648EiPNS_3API21CServerExoAppInternalEJEEET0_T1_DpT2_+0x45)[0xb762678e]
./nwserver-linux(+0xb2acd)[0x8010facd]
./nwserver-linux(+0x28999)[0x80085999]
./nwserver-linux(+0x2e31f)[0x8008b31f]
./nwserver-linux(+0x249fd)[0x800819fd]
Maybe I'm missing some other libraries? I'm running gcc 6.3 - I suppose I'll try upgrading that next. I'll also try the binaries from CI, but I have a really stupid question about that: how do you download them from https://circleci.com/gh/nwnxee/unified? I've clicked on the various builds listed there but it isn't obvious where the actual binaries are, or how to download them...
from unified.
- Updated gcc/g++ to 7.1 to eliminate version as a factor. Didn't help: while I can start the server and connect to MySQL, it fails to open any module I've made (with the same base version of the game):
I [17:40:02] NWNX_Core: Server is running version 8158.
I [17:40:02] NWNX_Core: Loading plugins from: .
I [17:40:02] NWNX_SQL: Connecting to type MYSQL
I [17:40:02] NWNX_SQL: Connection info: host=localhost username=root
I [17:40:02] NWNX_Core: Loaded plugin 0 (SQL) v1 by Liareth.
Server: Running...
module testmod
Server: Loading module "testmod"..
Server: Unable to load module
- Decided to try to get binaries from CircleCI but could not find them anywhere on the site. Finally realized I had to be logged in, and once logged in, discovered them in the Artifacts tab.
- Using the binaries, I now get complaints about something called
libmariadbclient
:
[19:39:01] NWNX_Core: Server is running version 8158.
I [19:39:01] NWNX_Core: Loading plugins from: .
E [19:39:01] NWNX_Core: Failed to load plugin (NWNX_SQL.so) because 'Plugin failed to load: libmariadbclient.so.18: cannot open shared object file: No such file or directory'.
F [19:39:01] NWNX_Core: The server encountered a fatal error 'Plugin failed to load: libmariadbclient.so.18: cannot open shared object file: No such file or directory' during setup and must now terminate.
terminate called after throwing an instance of 'std::runtime_error'
what(): Plugin failed to load: libmariadbclient.so.18: cannot open shared object file: No such file or directory
We just crashed hard. :( Sorry about that. But you can help us fix this! Please consider reporting this crash at http://redmine.beamdog.com with the relevant information attached.
- Taking a shot in the dark, I try
sudo apt-get install libmariadb-client-lgpl-dev
. Made no difference, same error. Anything stand out here?
=== Crash
What you see below is debug info that will help us fix a crash you have
encountered. Please create a new public ticket for NWN on
http://redmine.beamdog.com
and attach all of it. This will help us figure out what went wrong.
We can fix issues best when you include all relevant info that led to
this crash so we can reproduce it - the more the better.
Thank you.
=== Props
target = nwserver
time = 1518235597
exception = 6
g_sBuildNumber = 8158
g_sVersionNumber = 74
&GenericCrashHandler = 0x8045f850
=== Backtrace
./nwserver-linux(+0x398270)[0x80460270]
./nwserver-linux(+0x397d80)[0x8045fd80]
./nwserver-linux(+0x398311)[0x80460311]
[0xb77cacf0]
[0xb77cace5]
/lib/i386-linux-gnu/libc.so.6(gsignal+0x39)[0xb7156ea9]
/lib/i386-linux-gnu/libc.so.6(abort+0x157)[0xb7158407]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x132)[0xb73e51e2]
/usr/lib/i386-linux-gnu/libstdc++.so.6(+0x72864)[0xb73e2864]
/usr/lib/i386-linux-gnu/libstdc++.so.6(+0x728dd)[0xb73e28dd]
./NWNX_Core.so(_ZN7NWNXLib8Services8LogProxy5FatalIJPKcEEEvS4_DpT_+0x91)[0xb7634751]
./NWNX_Core.so(_ZN4Core8NWNXCore19CreateServerHandlerEN7NWNXLib8Services5Hooks8CallTypeEPNS1_3API11CAppManagerE+0x87)[0xb76339db]
./NWNX_Core.so(_ZN7NWNXLib8Services9HooksImpl23HookLandingHolderSharedINS_7Hooking17CallingConvention8ThisCallEE11HookLandingILj162720EvPNS_3API11CAppManagerEJEEET0_T1_DpT2_+0x6c)[0xb7633a58]
./nwserver-linux(+0x24020)[0x800ec020]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0xb7143637]
./nwserver-linux(+0x277cd)[0x800ef7cd]
=== File: /proc/self/status
Name: nwserver-linux
Umask: 0002
State: R (running)
Tgid: 19546
Ngid: 0
Pid: 19546
PPid: 19545
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 32
Groups: 4 24 27 30 46 113 128 1000
NStgid: 19546
NSpid: 19546
NSpgid: 19545
NSsid: 15379
VmPeak: 128888 kB
VmSize: 128604 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 8284 kB
VmRSS: 8212 kB
RssAnon: 2556 kB
RssFile: 5656 kB
RssShmem: 0 kB
VmData: 116796 kB
VmStk: 132 kB
VmExe: 4540 kB
VmLib: 7016 kB
VmPTE: 60 kB
VmPMD: 12 kB
VmSwap: 0 kB
HugetlbPages: 0 kB
Threads: 4
SigQ: 0/64455
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000020
SigIgn: 0000000000000000
SigCgt: 00000001800044a2
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 1
nonvoluntary_ctxt_switches: 26
=== File: /proc/self/maps
800c8000-80537000 r-xp 00000000 08:01 1445302 /opt/nwn/nwserver-linux
80538000-8053b000 r--p 0046f000 08:01 1445302 /opt/nwn/nwserver-linux
8053b000-80540000 rw-p 00472000 08:01 1445302 /opt/nwn/nwserver-linux
80540000-85dc4000 rw-p 00000000 00:00 0
863c2000-863c6000 rw-p 00000000 00:00 0 [heap]
863c6000-863c7000 rwxp 00000000 00:00 0 [heap]
863c7000-86403000 rw-p 00000000 00:00 0 [heap]
86403000-86405000 rwxp 00000000 00:00 0 [heap]
86405000-86423000 rw-p 00000000 00:00 0 [heap]
b57c0000-b57d4000 r-xp 00000000 08:01 1836693 /lib/i386-linux-gnu/libresolv-2.23.so
b57d4000-b57d5000 ---p 00014000 08:01 1836693 /lib/i386-linux-gnu/libresolv-2.23.so
b57d5000-b57d6000 r--p 00014000 08:01 1836693 /lib/i386-linux-gnu/libresolv-2.23.so
b57d6000-b57d7000 rw-p 00015000 08:01 1836693 /lib/i386-linux-gnu/libresolv-2.23.so
b57d7000-b57d9000 rw-p 00000000 00:00 0
b57d9000-b57de000 r-xp 00000000 08:01 1836638 /lib/i386-linux-gnu/libnss_dns-2.23.so
b57de000-b57df000 r--p 00004000 08:01 1836638 /lib/i386-linux-gnu/libnss_dns-2.23.so
b57df000-b57e0000 rw-p 00005000 08:01 1836638 /lib/i386-linux-gnu/libnss_dns-2.23.so
b57e0000-b57e2000 r-xp 00000000 08:01 1836646 /lib/i386-linux-gnu/libnss_mdns4_minimal.so.2
b57e2000-b57e3000 r--p 00001000 08:01 1836646 /lib/i386-linux-gnu/libnss_mdns4_minimal.so.2
b57e3000-b57e4000 rw-p 00002000 08:01 1836646 /lib/i386-linux-gnu/libnss_mdns4_minimal.so.2
b57e4000-b57e5000 ---p 00000000 00:00 0
b57e5000-b60e1000 rw-p 00000000 00:00 0
b60e1000-b60ec000 r-xp 00000000 08:01 1836640 /lib/i386-linux-gnu/libnss_files-2.23.so
b60ec000-b60ed000 r--p 0000a000 08:01 1836640 /lib/i386-linux-gnu/libnss_files-2.23.so
b60ed000-b60ee000 rw-p 0000b000 08:01 1836640 /lib/i386-linux-gnu/libnss_files-2.23.so
b60ee000-b60f4000 rw-p 00000000 00:00 0
b60f4000-b60ff000 r-xp 00000000 08:01 1836650 /lib/i386-linux-gnu/libnss_nis-2.23.so
b60ff000-b6100000 r--p 0000a000 08:01 1836650 /lib/i386-linux-gnu/libnss_nis-2.23.so
b6100000-b6101000 rw-p 0000b000 08:01 1836650 /lib/i386-linux-gnu/libnss_nis-2.23.so
b6101000-b6118000 r-xp 00000000 08:01 1836634 /lib/i386-linux-gnu/libnsl-2.23.so
b6118000-b6119000 r--p 00016000 08:01 1836634 /lib/i386-linux-gnu/libnsl-2.23.so
b6119000-b611a000 rw-p 00017000 08:01 1836634 /lib/i386-linux-gnu/libnsl-2.23.so
b611a000-b611c000 rw-p 00000000 00:00 0
b611c000-b6124000 r-xp 00000000 08:01 1836636 /lib/i386-linux-gnu/libnss_compat-2.23.so
b6124000-b6125000 r--p 00007000 08:01 1836636 /lib/i386-linux-gnu/libnss_compat-2.23.so
b6125000-b6126000 rw-p 00008000 08:01 1836636 /lib/i386-linux-gnu/libnss_compat-2.23.so
b6126000-b6127000 ---p 00000000 00:00 0
b6127000-b6927000 rw-p 00000000 00:00 0
b6927000-b6928000 ---p 00000000 00:00 0
b6928000-b712b000 rw-p 00000000 00:00 0
b712b000-b72db000 r-xp 00000000 08:01 1836543 /lib/i386-linux-gnu/libc-2.23.so
b72db000-b72dd000 r--p 001af000 08:01 1836543 /lib/i386-linux-gnu/libc-2.23.so
b72dd000-b72de000 rw-p 001b1000 08:01 1836543 /lib/i386-linux-gnu/libc-2.23.so
b72de000-b72e1000 rw-p 00000000 00:00 0
b72e1000-b72fa000 r-xp 00000000 08:01 1836687 /lib/i386-linux-gnu/libpthread-2.23.so
b72fa000-b72fb000 r--p 00018000 08:01 1836687 /lib/i386-linux-gnu/libpthread-2.23.so
b72fb000-b72fc000 rw-p 00019000 08:01 1836687 /lib/i386-linux-gnu/libpthread-2.23.so
b72fc000-b72fe000 rw-p 00000000 00:00 0
b72fe000-b7319000 r-xp 00000000 08:01 1835034 /lib/i386-linux-gnu/libgcc_s.so.1
b7319000-b731a000 r--p 0001a000 08:01 1835034 /lib/i386-linux-gnu/libgcc_s.so.1
b731a000-b731b000 rw-p 0001b000 08:01 1835034 /lib/i386-linux-gnu/libgcc_s.so.1
b731b000-b736e000 r-xp 00000000 08:01 1836613 /lib/i386-linux-gnu/libm-2.23.so
b736e000-b736f000 r--p 00052000 08:01 1836613 /lib/i386-linux-gnu/libm-2.23.so
b736f000-b7370000 rw-p 00053000 08:01 1836613 /lib/i386-linux-gnu/libm-2.23.so
b7370000-b74e9000 r-xp 00000000 08:01 33 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.24
b74e9000-b74ef000 r--p 00178000 08:01 33 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.24
b74ef000-b74f0000 rw-p 0017e000 08:01 33 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.24
b74f0000-b74f3000 rw-p 00000000 00:00 0
b74f3000-b74f6000 r-xp 00000000 08:01 1836567 /lib/i386-linux-gnu/libdl-2.23.so
b74f6000-b74f7000 r--p 00002000 08:01 1836567 /lib/i386-linux-gnu/libdl-2.23.so
b74f7000-b74f8000 rw-p 00003000 08:01 1836567 /lib/i386-linux-gnu/libdl-2.23.so
b750f000-b77c2000 r-xp 00000000 08:01 1445318 /opt/nwn/NWNX_Core.so
b77c2000-b77c3000 r--p 002b2000 08:01 1445318 /opt/nwn/NWNX_Core.so
b77c3000-b77c6000 rw-p 002b3000 08:01 1445318 /opt/nwn/NWNX_Core.so
b77c6000-b77c8000 rw-p 00000000 00:00 0
b77c8000-b77ca000 r--p 00000000 00:00 0 [vvar]
b77ca000-b77cc000 r-xp 00000000 00:00 0 [vdso]
b77cc000-b77ee000 r-xp 00000000 08:01 1836515 /lib/i386-linux-gnu/ld-2.23.so
b77ee000-b77ef000 rw-p 00000000 00:00 0
b77ef000-b77f0000 r--p 00022000 08:01 1836515 /lib/i386-linux-gnu/ld-2.23.so
b77f0000-b77f1000 rw-p 00023000 08:01 1836515 /lib/i386-linux-gnu/ld-2.23.so
bfa36000-bfa57000 rw-p 00000000 00:00 0 [stack]
=== End
from unified.
I'm no expert in this stuff, but it seems to me that the easiest way to get everything working is to use Docker. I'd actually suggest that this be the recommended approach for newcomers.
There's a docker image for running the server as well as building the source. The only improvements I can see is to increase the visibility, explain how to use these more easily, and provide sample run scripts for both Windows and Linux.
from unified.
add2lined crash from 8156 seems like a base game issue:
CrashReporter_Linux::WriteCallstack(_IO_FILE*)
GenericCrashHandler(int, void const*)
CrashReporter_Linux::InternalCrashHandler(int)
C2DA::GetColumnIndex(CExoString const&)
C2DA::GetINTEntry(int, CExoString const&, int*)
CNWTileSurfaceMesh::GetLOSMaterials()
CNWTileSurfaceMesh::CNWTileSurfaceMesh()
CNWTileData::CNWTileData()
CNWTileSet::LoadTileSet()
CNWTileSetManager::RegisterTileSet(CResRef)
CNWSArea::LoadTileSetInfo(CResStruct*)
CNWSArea::LoadArea(int, CResGFF*, CResStruct*)
CNWSModule::LoadModuleInProgress(int, int)
CServerExoAppInternal::MainLoop()
CServerExoApp::MainLoop()
AdminLoadModule(char*)
ProcessKeyboardInput()
main
As for the second one, try locate libmariadbclient.so.18
and locate libmariadbclient.so
, maybe you'll need to link one to the other. Also libmariadbclient.so is equivalent to libmysqlclient.so, so you can link those.
from unified.
I've practically given up on getting the compiled version to work. Trying docker now, but I'm getting timeouts after executing rundockerbuild.sh
:
Unable to find image 'docker.nwnx.io:443/nwnxee/unified:builder' locally
docker: Error response from daemon: Get https://docker.nwnx.io:443/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
Is that the correct url it's trying to access?
from unified.
Gonna close this down now as the README.md has been updated with an example startup script and much more documentation on how to make things work. If this still isn't sufficient we can reopen.
from unified.
Hi guys ! Sorry to bother you, but I'm trying to include nwnx:ee (mainly for it's database plugin) into my module and I don't understand very well how to proceed.
I only have a computer with windows 10 on it, and I understood the binaries provided only works on linux. I would be glad to avoid setting up a full VM in order to develop and test the module.
So I understood I could use Docker in order to run linux softwares on windows 10.
Since I'm quite new to both nwnx and Docker, I'm a bit lost here.
I installed Docker and simply tried to run the beamdog/nwserver image following the tutorial here https://hub.docker.com/r/beamdog/nwserver/
But i'm stuck at the first command line :
docker run --rm -it \
-p 5121:5121/udp -e NWN_PORT=5121 \
-v $(pwd):/nwn/home \
-e NWN_MODULE="My Test Module" \
-e NWN_PUBLICSERVER=1 \
beamdog/nwserver:8183
I got a C:\Program Files\Docker\Docker\Resources\bin\docker.exe: invalid reference format.
Then I tried to replace the -v option with the path of my module which is C:\Users\rgranger\Desktop\test-nwn-server
and I got a
Error response from daemon: driver failed programming external connectivity on endpoint flamboyant_elion (c2bf53a930e970b207def36395b1ca31f9b7d775eb8ad82a25a4e97e880f8a9f): Error starting userland proxy: mkdir /port/udp:0.0.0.0:5121:udp:170.25.1.2:5121: input/output error.
So what am I doing wrong, except "everything" ? :)
If I get the beamdog/nwserver image to work, do the nwnxee/unified:latest image works the same, or do I have some configuration to do ?
If you could give me a simple step by step tutorial on how to use / configure the Docker image to run the nwnx server on windows 10, and some basic command line examples, I would be really grateful !
from unified.
@rgranger best place to get docker support is on the discord server: https://discord.gg/hxTt8Fr
If you're only interested in database connectivity, there's a native windows version for that: https://github.com/mtijanic/nwnxlite
from unified.
Thanks for the super fast response !
I'll take a look at nwnxlite !
from unified.
Related Issues (20)
- NWNX_TWEAKS_* issue on .35 server HOT 13
- Segmentation fault related to AI / Henchman
- NWNXLib::API::Constants::SavingThrowType is missing a a value for "Paralysis" (=20) HOT 3
- NWNX_Events: ON_COMBAT_EXIT does not hook (Must sub to ON_COMBAT_ENTER) HOT 1
- Event on encumbered
- Event for excessive pathfinding instructions
- NWNX_Creature_SetSavingThrowModifier feature request
- Feature request: DM Chooser and Creator windows/data added to nwnx_events
- DAMAGE_TYPE_BASE_WEAPON doesn't propogate if added in ResolveDeathAttackHook HOT 2
- Add 'NWNX_Player_SetBicFileName' HOT 3
- nwnx func quastion HOT 1
- NWNX_Weapon hooks CNWSCreatureStats::GetWeaponFinesse and replaces it, so it ignores baseitem.2da values.
- 'development' folder not working with newest NWNX files? HOT 2
- FEATURE REQUEST: Text Label for NWNX_PLAYER_TIMING_BAR_CUSTOM()
- Core: _ZN7NWNXLib8Platform13GetStackTraceB5cxx11Eh
- NWNX 8193.36-9 (b12b114856) has crashed. Fatal error: Segmentation fault (11). HOT 15
- nwnx_signal_handler should print the nwscript context too
- NWNX_ON_DETECT_ENTER_* Events Get Signaled on Both Enter and Exit
- NWNX_Creature_GetSpecialAbilityCount doesn't count removed abilities (with id = -1) HOT 2
- Feature Request: Add a way to return Number of Inventory Pages a Store/Creature/Container Has
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unified.