This Trac instance is not used for development anymore!

We migrated our development workflow to git and Gitea.
To test the future redirection, replace trac by ariadne in the page URL.

Opened 18 years ago

Closed 18 years ago

Last modified 14 years ago

#160 closed defect (fixed)

lockfree tests fail on Linux

Reported by: Philip Taylor Owned by: Jan Wassenberg
Priority: Should Have Milestone:
Component: Core engine Keywords:
Cc: Patch:

Description

lockfree.cpp(179): Assertion failed: "tls_key != 0"
Assertion failed: "tls_key != 0"
Location: lockfree.cpp:179 (tls_alloc)
errno = 0 (?)
OS error = ?

Call stack:

(0x084e4999) allocators.cpp:621 bucket_create(Bucket*, unsigned int)
(0x084e4be0) allocators.cpp:166 validate_da
(0x084e5239) allocators.cpp:581 pool_free_all(Pool*)
(0x082d7f14) stl_iterator_base_funcs.h:118 std::iterator_traits<__gnu_cxx::__normal_iterator< unsigned short*, std::basic_string<unsigned short, std::char_traits<unsigned short>, std::all ocator<unsigned short> > > >::difference_type std::distance<__gnu_cxx::__normal_iterator<unsi gned short*, std::basic_string<unsigned short, std::char_traits<unsigned short>, std::allocat or<unsigned short> > > >(__gnu_cxx::__normal_iterator<unsigned short*, std::basic_string<unsi gned short, std::char_traits<unsigned short>, std::allocator<unsigned short> > >, __gnu_cxx:: __normal_iterator<unsigned short*, std::basic_string<unsigned short, std::char_traits<unsigne d short>, std::allocator<unsigned short> > >)
(0x082d81c4) stl_construct.h:121 void std::__destroy_aux<__gnu_cxx::__normal_iterator<JSFunct ionSpec*, std::vector<JSFunctionSpec, std::allocator<JSFunctionSpec> > > >(__gnu_cxx::__norma l_iterator<JSFunctionSpec*, std::vector<JSFunctionSpec, std::allocator<JSFunctionSpec> > >, _ _gnu_cxx::__normal_iterator<JSFunctionSpec*, std::vector<JSFunctionSpec, std::allocator<JSFun ctionSpec> > >, __false_type)
(0x082b3f78) stl_algobase.h:387 HEntity* std::copy<__gnu_cxx::__normal_iterator<HEntity const *, std::vector<HEntity, std::allocator<HEntity> > >, HEntity*>(__gnu_cxx::__normal_iterator<H Entity const*, std::vector<HEntity, std::allocator<HEntity> > >, __gnu_cxx::__normal_iterator <HEntity const*, std::vector<HEntity, std::allocator<HEntity> > >, HEntity*)
(0x082b826a) stl_tree.h:817 std::_Rb_tree<CStrW, std::pair<CStrW const, int>, std::_Select1st <std::pair<CStrW const, int> >, CStrW_hash_compare, std::allocator<std::pair<CStrW const, int > > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<CStrW const, i nt> const&)
(0x082b8342) stl_tree.h:917 std::_Rb_tree<CStrW, std::pair<CStrW const, int>, std::_Select1st <std::pair<CStrW const, int> >, CStrW_hash_compare, std::allocator<std::pair<CStrW const, int > > >::insert_unique(std::pair<CStrW const, int> const&)
(0x082b8433) stl_tree.h:927 std::_Rb_tree<CStrW, std::pair<CStrW const, int>, std::_Select1st <std::pair<CStrW const, int> >, CStrW_hash_compare, std::allocator<std::pair<CStrW const, int > > >::insert_unique(std::pair<CStrW const, int> const&)
(0x082b84e9) stl_tree.h:932 std::_Rb_tree<CStrW, std::pair<CStrW const, int>, std::_Select1st <std::pair<CStrW const, int> >, CStrW_hash_compare, std::allocator<std::pair<CStrW const, int > > >::insert_unique(std::pair<CStrW const, int> const&)
(0x082b8511) stl_tree.h:942 std::_Rb_tree<CStrW, std::pair<CStrW const, int>, std::_Select1st <std::pair<CStrW const, int> >, CStrW_hash_compare, std::allocator<std::pair<CStrW const, int > > >::insert_unique(std::_Rb_tree_iterator<std::pair<CStrW const, int> >, std::pair<CStrW co nst, int> const&)
(0x082b62be) stl_pair.h:69 pair
(0xb760d878) /lib/libc.so.6:0 __libc_start_main
(0x082b36a1) stl_vector.h:776 HEntity* std::vector<HEntity, std::allocator<HEntity> >::_M_all ocate_and_copy<__gnu_cxx::__normal_iterator<HEntity const*, std::vector<HEntity, std::allocat or<HEntity> > > >(unsigned int, __gnu_cxx::__normal_iterator<HEntity const*, std::vector<HEnt ity, std::allocator<HEntity> > >, __gnu_cxx::__normal_iterator<HEntity const*, std::vector<HE ntity, std::allocator<HEntity> > >)

Change History (2)

comment:1 by Jan Wassenberg, 18 years ago

Resolution: fixed
Status: newclosed

(In [4635]) # fix 2 problems with self-test on linux (lock-free init and path separator test) fixes #159 fixes #160

lib: add moduleInit helpers (centralizes a bit of code and saves typing; sorry for the recompile) path_util: allow '
' as separator (see rationale there) lockfree.cpp: use moduleInit, no longer rely on type/value of pthread_key_t (which was a hack)

comment:2 by (none), 14 years ago

Milestone: ASAP

Milestone ASAP deleted

Note: See TracTickets for help on using tickets.