OnRemove.ecl is standard onremove script for most of our containers. It have IncRevision(backpack); on feral 239 line. I've noticed that crash with 619, and 620 revs too. Most of the time it stops on OnRemove. I know that doesn't really mean that OnRemove.ecl script is the one causing crash but maybe that can help a bit.
Stacktrace:
Code: Select all
=== CUT ===
Build: POL099-2011-05-02 Break Everything Even Rudder (debian)
Last Script: pkg/items/containers/container/onRemove.ecl PC: 239
Stack Backtrace:
[0x829506c]
[0x830b438]
[0x81acca8]
[0x81ce7c1]
[0x81d1a41]
[0x8264c7e]
[0x826b623]
[0x826e241]
[0x81776e6]
[0x817842a]
[0x8142c44]
[0x829baca]
[0x829c013]
[0x8307584]
[0x835431e]
=== CUT ===Code: Select all
(gdb) l *0x829506c
0x829506c is in segv_handler(int) (clib/strexcpt.cpp:275).
270 cerr << "Build: " << progverstr << " (" << buildtagstr << ")" << endl;
271 cerr << "Last Script: " << scripts_thread_script << " PC: " << scripts_thread_scriptPC << endl;
272 cerr << "Stack Backtrace:" << endl;
273
274 void* bt[ 200 ];
275 int n = backtrace( bt, 200 );
276 char** strings = backtrace_symbols( bt, n );
277 for (int i = 0; i < n; i++)
278 {
279 Log( "%s\n", strings[ i ] );
(gdb) l *0x830b438
No source file for address 0x830b438.
(gdb) l *0x81acca8
0x81acca8 is in send_remove_object_if_inrange(Client*, Item const*) (pol/ufunc.cpp:653).
648 (abs( c1->y - c2->y ) <= RANGE_VISUAL) );
649 }
650
651 bool inrange( const Character *c1, const UObject *obj )
652 {
653 obj = obj->toplevel_owner();
654
655 return ( (c1->realm == obj->realm) &&
656 (abs( c1->x - obj->x ) <= RANGE_VISUAL) &&
657 (abs( c1->y - obj->y ) <= RANGE_VISUAL) );
(gdb) l *0x81ce7c1
0x81ce7c1 is in true_extricate(Item*) (pol/module/../../clib/stlutil.h:38).
33
34 template <class C, class T, class A>
35 void ConstForEach( C& coll, void (*f)(T elem, const A* staticdata), const A* staticdata )
36 {
37 typename C::iterator itr = coll.begin(), end = coll.end();
38 for( ; itr != end; ++itr )
39 {
40 (*f)( *itr, staticdata );
41 }
42 }
(gdb) l *0x81d1a41
0x81d1a41 is in UOExecutorModule::mf_MoveItemToContainer() (pol/module/uomod.cpp:3798).
3793 else
3794 {
3795 u16 amount = item->getamount();
3796 existing_stack->add_to_self(item);
3797 true_extricate( item );
3798 update_item_to_inrange( existing_stack );
3799 UpdateCharacterWeight( existing_stack );
3800
3801 cont->on_insert_increase_stack( chr_owner, UContainer::MT_CORE_MOVED, existing_stack, amount );
3802 }
(gdb) l *0x81d1a41
0x81d1a41 is in UOExecutorModule::mf_MoveItemToContainer() (pol/module/uomod.cpp:3798).
3793 else
3794 {
3795 u16 amount = item->getamount();
3796 existing_stack->add_to_self(item);
3797 true_extricate( item );
3798 update_item_to_inrange( existing_stack );
3799 UpdateCharacterWeight( existing_stack );
3800
3801 cont->on_insert_increase_stack( chr_owner, UContainer::MT_CORE_MOVED, existing_stack, amount );
3802 }
(gdb) l *0x8264c7e
0x8264c7e is in Executor::execFunc(Token const&) (bscript/executor.cpp:806).
801 if (!fparams.empty())
802 strm << " [" << fparams[0].get()->impptr()->typeOf() << "]";
803 string name(strm.str());
804 unsigned long profile_start= GetTimeUs();
805 #endif
806 BObjectImp* resimp = em->execFunc( modfunc->funcidx );
807 #ifdef ESCRIPT_PROFILE
808 profile_escript(name,profile_start);
809 #endif
810
(gdb) l *0x826b623
0x826b623 is in Executor::ins_func(Instruction const&) (/usr/include/c++/4.4/bits/stl_vector.h:951).
946 * pointed-to memory is not touched in any way. Managing the pointer is
947 * the user's responsibility.
948 */
949 void
950 clear()
951 { _M_erase_at_end(this->_M_impl._M_start); }
952
953 protected:
954 /**
955 * Memory expansion handler. Uses the member allocation function to
(gdb) l *0x826e241
0x826e241 is in Executor::execInstr() (bscript/executor.cpp:3321).
3316 onPC );
3317
3318 show_context( onPC );
3319 }
3320 #endif
3321 }
3322
3323 string Executor::dbg_get_instruction( size_t atPC ) const
3324 {
3325 OSTRINGSTREAM os;
(gdb) l *0x81776e6
0x81776e6 is in run_ready() (pol/scrsched.cpp:316).
311 ++ex->instr_cycles;
312 THREAD_CHECKPOINT( scripts, 112 );
313 scripts_thread_scriptPC = ex->PC;
314 ex->execInstr();
315
316 THREAD_CHECKPOINT( scripts, 113 );
317
318 if (os_module->blocked_)
319 {
320 ex->warn_runaway_on_cycle = ex->instr_cycles + config.runaway_script_threshold;(gdb) l *0x8142c44
0x8142c44 is in scripts_thread() (/usr/include/c++/4.4/bits/stl_iterator.h:686).
681 typedef typename iterator_traits<_Iterator>::pointer pointer;
682
683 __normal_iterator() : _M_current(_Iterator()) { }
684
685 explicit
686 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
687
688 // Allow iterator to const_iterator conversion
689 template<typename _Iter>
690 __normal_iterator(const __normal_iterator<_Iter,
(gdb) l *0x817842a
0x817842a is in step_scripts(int*, bool*) (pol/scrsched.cpp:495).
490 THREAD_CHECKPOINT( scripts, 103 );
491
492 run_ready();
493
494 // cerr << "h";
495 THREAD_CHECKPOINT( scripts, 104 );
496
497 check_blocked( clocksleft );
498 THREAD_CHECKPOINT( scripts, 105 );
499 if (!runlist.empty())
(gdb) l *0x8142c44
0x8142c44 is in scripts_thread() (/usr/include/c++/4.4/bits/stl_iterator.h:686).
681 typedef typename iterator_traits<_Iterator>::pointer pointer;
682
683 __normal_iterator() : _M_current(_Iterator()) { }
684
685 explicit
686 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
687
688 // Allow iterator to const_iterator conversion
689 template<typename _Iter>
690 __normal_iterator(const __normal_iterator<_Iter,
(gdb) l *0x829baca
0x829baca is in threadhelp::run_thread(void (*)()) (clib/threadhelp.cpp:144).
139 res = pthread_attr_setdetachstate( &create_detached_attr, PTHREAD_CREATE_DETACHED );
140 passert_always( res == 0 );
141 }
142 void threadsem_lock()
143 {
144 pid_t pid = getpid();
145 int res = pthread_mutex_lock( &threadsem );
146 if (res != 0)
147 {
148 Log( "pthread_mutex_lock: res=%d, pid=%d\n", res, pid );
(gdb) l *0x829c013
0x829c013 is in threadhelp::thread_stub2(void*) (clib/threadhelp.cpp:277).
272 td = NULL;
273
274 if (entry != NULL)
275 run_thread( entry, arg );
276 else
277 run_thread( entry_noparam );
278
279 #ifdef _WIN32
280 _endthreadex(0);
281 #else
0x8307584 is in start_thread (pthread_create.c:300).
295 pthread_create.c: Nie ma takiego pliku ani katalogu.
in pthread_create.c
(gdb) l *0x835431e
No source file for address 0x835431e.