Bug #987

EGS Segmentation fault under ubuntu x64

Added by Enoril about 8 years ago. Updated over 7 years ago.

Status:Rejected Start date:06/20/2010
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:-
Target version:-

Description

Hello,

EGS service crash at launching under ubuntu x64

After a little discution with kervala, i've launch EGS under debug mode with gdb tool.

You will find below the result :

/ryzom_code_linux/code/ryzom/server$ gdb ./src/entities_game_service/entities_game_service_debug

GNU gdb (GDB) 7.1-ubuntu
<blabla>
Reading symbols from /ryzom_code_linux/code/ryzom/server/src/entities_game_service/entities_game_service_debug...done.

(gdb) run

Starting program: /ryzom/ryzom_code_linux/code/ryzom/server/src/entities_game_service/entities_game_service_debug 
[Thread debugging using libthread_db enabled]
INF f7fd6720 command.cpp 145 registerNamedCommandHandler <Unknown> : CCommandRegistry : adding commands handler for class 'CModuleManager'
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'AdminExecutorService' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'AdminExecutorServiceClient' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'AdminService' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'AnimSessionManager' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'CharNameMapperClient' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'CharacterControl' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'ClientCommandForwader' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'GuildUnifier' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'LocalGateway' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'LoggerServiceClient' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'ShardUnifierClient' factory
INF f7fd6720 module_manager.cpp 228 addModuleFactoryRegistry <Unknown> : Adding module 'StandardGateway' factory
INF f7fd6720 service.cpp 256 cbDirectoryChanged EGS : SERVICE: 'ConfigDirectory' changed to '/ryzom/ryzom_code_linux/code/ryzom/server/'

Program received signal SIGSEGV, Segmentation fault.
0x000000000143b15c in NLNET::cbDirectoryChanged(NLMISC::IVariable&) ()

(gdb) bt

  0x000000000143b15c in NLNET::cbDirectoryChanged(NLMISC::IVariable&) ()
  0x00000000014422f1 in NLNET::IService::main(char const*, char const*, unsigned short, char const*, char const*, char const*) ()
  0x0000000000b3ad89 in main (argc=1, argv=0x7fffffffe298)
    at entities_game_service.cpp:2119

At the line 2119 in entities_game_service.cpp, we've found this:

NLNET_SERVICE_MAIN( CPlayerService, "EGS", "entities_game_service", 0, EmptyCallbackArray, "", "" );

But, after search and test, i don't find the reason of this crash.
All others services are launched correctly except egs.

Need some help :)


Related issues

duplicated by Ryzom - Bug #1016: entities_game_service segfault in ubuntu 64biten Validated 07/13/2010

History

#1 Updated by vonbister about 8 years ago

Same issue on Ubuntu 10.4 amd64.

Solved by changing line 259 of code/nel/src/net/service.cpp
from:
if (var.getName() "RunningDirectory")
to:
if (var.getName().c_str() "RunningDirectory")

note: i had to do a full rebuild, 'make_all' didn't rebuild nel when i changed the file.

#2 Updated by kervala about 8 years ago

if (var.getName().c_str() == "RunningDirectory")
is not correct neither :(

Because it's always "false": var.getName().c_str() is the pointer on var string and "RunningDirectory" is the pointer on a different static string.

If you want to compare 2 char*, you should use

strcmp(var1, var2) == 0

If you changed that and it doesn't crash anymore, that's a problem with chdir (vp.c_str());

#3 Updated by promethium about 8 years ago

vonbister wrote:

Same issue on Ubuntu 10.4 amd64.

Solved by changing line 259 of code/nel/src/net/service.cpp

I have the same problem with ubuntu 10.10 x86_64 (does it work for anyone with 64 bits ubuntu ?).

I tried everything around those line (checking for null or empty path, commenting out the test), and cleaning out everything before rebuilding (by uncommenting cleanup lines in make_all, is it the right thing to do ?), but it doesn't seem to have any effects on the error for me.

#4 Updated by kervala over 7 years ago

  • Status changed from New to Rejected

That's a duplicate of #1016 and since there are more details there, we'lll use the other issue :)

Also available in: Atom PDF