Tuesday, February 25, 2014

Re: [fedora-arm] need help to build zorba package for ARM

On Tue, Feb 25, 2014 at 01:18:57PM +0000, Richard W.M. Jones wrote:
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 __GI_strspn (s=s@entry=0x0, accept=accept@entry=0xb6d0576c ";")
> at strspn.c:33
> 33 for (p = s; *p != '\0'; ++p)
> (gdb) t a a bt
>
> Thread 1 (Thread 0xb6f82000 (LWP 2133)):
> #0 __GI_strspn (s=s@entry=0x0, accept=accept@entry=0xb6d0576c ";")
> at strspn.c:33
> #1 0xb442e804 in strtok (s=0x0, delim=0xb6d0576c ";") at strtok.c:45
> #2 0xb65dd4e0 in zorba::append_env_var (env_var_name=<optimized out>,
> pathsVector=std::vector of length 3, capacity 4 = {...})
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/context/root_static_context.cpp:102

Yeah, I debugged this last night, the problem is zorba isn't checking
the return value of getenv, and as a result, passing a NULL ptr to
strtok. Oddly, the optimized assembler versions in glibc for x86_64
happily just return NULL, whereas on ARM and other platforms, they
dereference NULL and take a SIGSEGV.

Bringing this up with the glibc developers and scratch-building zorba:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6569756

--Kyle


> #3 0xb65de118 in zorba::root_static_context::init (this=this@entry=0xa8460)
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/context/root_static_context.cpp:268
> #4 0xb659f31c in zorba::GlobalEnvironment::init (
> store=0xb6f61728 <zorba::StoreManager::getStore()::store>)
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/system/globalenv.cpp:85
> #5 0xb62eb2b0 in zorba::ZorbaImpl::init (
> this=0xb6f5d85c <zorba::Zorba::getInstance(void*)::lInstance>,
> store=0xb6f61728 <zorba::StoreManager::getStore()::store>)
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/api/zorbaimpl.cpp:103
> #6 0xb62eaf04 in zorba::Zorba::getInstance (
> store=0xb6f61728 <zorba::StoreManager::getStore()::store>,
> store@entry=0x10001 <compileAndExecute(zorba::Zorba*, ZorbaCMDProperties const&, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, TimingInfo&)+2092>)
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/api/zorba.cpp:32
> #7 0x0000beb0 in main (argc=<optimized out>, argv=<optimized out>)
> at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/bin/zorbacmd.cpp:1034
>
> HTH.
>
> ----------------------------------------------------------------------
>
> By the way [small advert follows!] Cubietrucks are reasonably powerful
> ARM systems that you can buy worldwide for around US$99. They run
> Hans de Goede's Fedora Allwinner Remix straight out of the box. You
> will also need to buy a CP2102 serial cable (cost around $10), a
> microSDHD card, and optionally a 2.5" SATA drive. If you want a
> reasonably cheap way to debug these kinds of problems locally, this is
> the way to go.
>
> Rich.
>
> --
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> virt-df lists disk usage of guests without needing to install any
> software inside the virtual machine. Supports Linux and Windows.
> http://people.redhat.com/~rjones/virt-df/
> _______________________________________________
> arm mailing list
> arm@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/arm
_______________________________________________
arm mailing list
arm@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/arm

No comments:

Post a Comment