On 06/05/14 01:17, vv m wrote:
> Hi All,
>
> I'm trying to built  FB from the source code v. 2.5.2.26540-0 on AIX 6.1
> (PPC). I've made some minor changes in the build script to let it create
> ./configure script, also a couple of source code files slightly changed
> (mostly to avoid conflicts).
> But now I'm facing a problem - attempt to create/access to DB file causes
> core dump in Jrd::LockManager::attach_shared_file() function.
> Actually, it happens during the build when empty.fdb and other DB files are
> created. Manually retrying create_db I can get all all .fdb files created
> (files are created in spite of  core dump).
>
> AIX 6.1 PPC, IBM XL C/C++ for AIX, V12.1
>
> My settings:
> export CC=xlc_r
> export CXX=xlC_r
> export CFLAGS="-q64 -gxlc -D_REENTRANT"
> export CXXFLAGS="-q64 -gxlC D_REENTRANT"
>
> ./autogen.sh --enable-debug=yes
>
> Also I set FIREBIRD to .../firebird, FIREBIRD_LOCK to one of temp folders,
> and LIBPATH (LD_LIBRARY_PATH) to .../firebird/lib
>
> I'd like to share some results of debugging.
>
> Assert happens after the following sequence of function calls (in create_db
> exec):
>   main at lineline 49 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/utilities/create_db.cpp"
> ($t1)
>   49           isc_attach_database(sv, 0, argv[1], &db,
> dpb.getBufferLength(),
> -->
>   jrd8_attach_database at line 1039 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/jrd/jrd.cpp" ($t1)
>   1039                   dbb->dbb_lock_mgr =
> LockManager::create(dbb->getUniqueFileId());
> --->
>
>   Jrd::LockManager::create(const
> Firebird::StringBase<Firebird::StringComparator>&) at line 182 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/lock/lock.cpp"
> ($t1)
>    182                   lockMgr = new LockManager(id);
> --->
>   Jrd::LockManager::LockManager(const
> Firebird::StringBase<Firebird::StringComparator>&) at line 232 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/lock/lock.cpp"
> ($t1)
>    232           if (!attach_shared_file(local_status))
> --->
> Jrd::LockManager::attach_shared_file(long*)(this = 0x0700000000006df0,
> status = 0x0fffffffffffe680), line 339 in "lock.cpp"
> --->
> ISC_map_file(long*,const char*,void(*)(void*,sh_mem*,bool),void*,unsigned
> int,sh_mem*) at line 2335 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/jrd/isc_sync.cpp"
> ($t1)
>   2335           gds__prefix_lock(expanded_filename, filename);
> ...
> ISC_map_file(long*,const char*,void(*)(void*,sh_mem*,bool),void*,unsigned
> int,sh_mem*)(status_vector = 0x0fffffffffffe680, filename =
> "fb_lock_80000030000000010000000001619004", init_routine =
> 0x000000011018c928, init_arg = 0x0700000000006df0, length = 1048576,
> shmem_data = 0x0700000000006e20), line 2526 in "isc_sync.cpp"
> <---
> Jrd::LockManager::attach_shared_file(long*)(this = 0x0700000000006df0,
> status = 0x0fffffffffffe680), line 341 in "lock.cpp"
>
> After that point, m_header (and it's lhb_version field):
> (dbx) n
> stopped in Jrd::LockManager::attach_shared_file(long*) at line 341 in file
> "/export/home/ilmbuild/TEST/FB/Firebird-2.5.2.26540-0/src/lock/lock.cpp"
> ($t1)
>    341           if (!m_header)
> (dbx) p *m_header
> (lhb_type = '^G', *lhb_version = '\0'*, lhb_secondary = 139264,
> lhb_active_owner = 1, lhb_owners = (srq_forward = 8769248, srq_backward =
> 1), lhb_processes = (srq_forward = 5283304, srq_backward = 117440512),
> lhb_free_processes = (srq_forward = 28144, srq_backward = 1),
> lhb_free_owners = (srq_forward = 268503808, srq_backward = 117440512),
> lhb_free_locks = (srq_forward = 93728, srq_backward = 2621504),
> lhb_free_requests = (srq_forward = 29392, srq_backward = 0), lhb_length =
> 1320, lhb_used = 1, lhb_hash_slots = 56, lhb_flags = 43932, lhb_mutex =

Header looks like completely trashed. Or (sooner of all) not initialized 
properly.
Please check - is function
void LockManager::initialize(sh_mem* shmem_data, bool initializeMemory)
(it's in lock.cpp) called during ISC_map_file() operation or not.


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to