Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla at busybox.net <bugzilla@busybox.net>
To: buildroot@busybox.net
Subject: [Buildroot] [Bug 8296] nodejs 0.12.7 - npm crashes (seg core dump)
Date: Wed, 02 Dec 2015 21:51:33 +0000	[thread overview]
Message-ID: <bug-8296-163-U4DaMxTYug@https.bugs.busybox.net/> (raw)
In-Reply-To: <bug-8296-163@https.bugs.busybox.net/>

https://bugs.busybox.net/show_bug.cgi?id=8296

--- Comment #6 from Martin <martin@barkynet.com> ---
(In reply to Arnout Vandecappelle from comment #5)
> (In reply to Martin from comment #4)
> > Created attachment 6241 [details]
> > backtrace from npm core dump
> > 
> > I have attached a back trace from the npm crash.  I see
> > node::os::GetInterfaceAddresses is called so as an experiment i tried the
> > following javascript
> > 
> >     var os = require('os');
> >     var ifaces = os.networkInterfaces();
> >     console.log(ifaces);
> > 
> > This produces the same back trace as running npm.  Running this code using
> > glibc works.  So it seems the issues is npm is using os.networkInterfaces()
> > which works with glibc but not uclibc.
> > 
> > You can find the code for node::os::GetInterfaceAddresses in node.js v0.12.7
> > here
> > https://github.com/nodejs/node/blob/d3492aa7b386946e3a156440cad346e5b0a82838/
> > src/node_os.cc#L225-L300.
> > 
> > The back trace shows the crash is in OneByteString which is called in
> > several places in node::os::GetInterfaceAddresses.  The data it's operating
> > on comes from a call to uv_interface_addresses() which is part libuv that's
> > in node.js.  The code for uv_interface_addresses() is here
> > https://github.com/nodejs/node/blob/d3492aa7b386946e3a156440cad346e5b0a82838/
> > deps/uv/src/unix/linux-core.c#L786-L878.
> > 
> > I suspect uv_interface_addresses() is where the issue lies.
> 
>  Can you check if libuv's config.h has HAVE_IFADDRS_H ? If not, there is an
> obvious bug in node::os::GetInterfaceAddresses: it will loop using the
> uninitialized count variable when err == UV_ENOSYS. There's a missing return
> in that condition.

HAVE_IFADDRS_H is defined at the top of the linux-core.c file.  I spotted this
code yesterday but a second look today and I see the issue.  The following snip
is from 

#define HAVE_IFADDRS_H 1

#ifdef __UCLIBC__
# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32
#  undef HAVE_IFADDRS_H
# endif
#endif


I think this is trying to say if uclibc version is < 0.9.32 but the logical or
is wrong, it should be and.  It means HAVE_IFADDRS_H is indeed undefined.  If i
change this to logical and then npm works.

Also, this code is not in node.js 0.10.40 which is why it works.

I'll work on a patch.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2015-12-02 21:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-17 17:13 [Buildroot] [Bug 8296] New: nodejs 0.12.7 - npm crashes (seg core dump) bugzilla at busybox.net
2015-12-01 21:41 ` [Buildroot] [Bug 8296] " bugzilla at busybox.net
2015-12-01 21:42 ` bugzilla at busybox.net
2015-12-01 21:49 ` bugzilla at busybox.net
2015-12-01 22:04 ` bugzilla at busybox.net
2015-12-01 23:02   ` Martin Bark
2015-12-02  8:12     ` Thomas Petazzoni
2015-12-02 21:50     ` Mike Frysinger
2015-12-02 20:00 ` bugzilla at busybox.net
2015-12-02 20:58 ` bugzilla at busybox.net
2015-12-02 21:51 ` bugzilla at busybox.net [this message]
2015-12-02 22:01 ` bugzilla at busybox.net
2015-12-14 15:40 ` bugzilla at busybox.net
2015-12-23 17:48 ` bugzilla at busybox.net

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-8296-163-U4DaMxTYug@https.bugs.busybox.net/ \
    --to=bugzilla@busybox.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox