crash with linux 32bit binary debian svn rev 621

Bug reports and feature requests. New features can only be added to the current development version. Bug-fixes may be back-ported.

Current release: 099 / Current development: 100
Post Reply
User avatar
AsYlum
Grandmaster Poster
Posts: 115
Joined: Sun Feb 05, 2006 5:24 am

crash with linux 32bit binary debian svn rev 621

Post by AsYlum »

I tried unpatched latest binary and it crashes.

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 ===
GDB output for unstripped binary

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.
RusseL
Forum Regular
Posts: 375
Joined: Fri Feb 20, 2009 8:30 pm

Re: crash with linux 32bit binary debian svn rev 621

Post by RusseL »

show us your script, let's test :)
Post Reply