nobs crash on Python 2.7.9 / Solaris
nobs currently crashes with the traceback below on pcp-d-[34], our x86 Solaris systems. Same crash also happens with an external GASNet.
Marking as minor because Solaris is not a currently supported platform. However it would be nice to understand what makes this Python install different and whether the same could occur in a Python install for a platform that is supported.
The Solaris system is running Python 2.7.9, which is newer than the 2.7.5 on our Linux test systems where things are working.
{pcp-d-3 ~/UPC/upcxx} rm -Rf .nobs/ ; ./install test | cat
Downloading http://gasnet.lbl.gov/EX/GASNet-2017.6.0.tar.gz
Finished http://gasnet.lbl.gov/EX/GASNet-2017.6.0.tar.gz
Configuring GASNet...
(in /shared/bonachea/UPC/upcxx/.nobs/art/1c62206bae65250eabf6396b35f03fe077089ade)
/shared/bonachea/UPC/upcxx/.nobs/art/9163d390d22a920d4cc658efd176c74efbf88fa6/GASNet-2017.6.0/configure --disable-psm --disable-mxm --disable-portals4 --disable-ofi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Uncaught exception
Traceback (most recent call last):
File "/shared/bonachea/UPC/upcxx/nobs/nobs/tool_main.py", line 87, in main
printed.wait()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 447, in wait
return me.wait_futurized().value()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 596, in install
libset = yield cxt.library(main_src)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 458, in memo_execute
yield result
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 542, in execute
objs, libset = yield me.crawl()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 492, in crawl
yield fresh_src(main_src)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 601, in fire1
proxied = lam(arg_result)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 540, in result
return resultoid()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 458, in memo_execute
yield result
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 382, in execute
comp_pp, src, ipt = yield me.get_comp_pp_and_src_and_ipt()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 601, in fire1
proxied = lam(arg_result)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 540, in result
return resultoid()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 374, in get_comp_pp_and_src_and_ipt
comp_pp = yield cxt.comp_lang_pp(src)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 187, in comp_lang_pp
libs = yield cxt.libraries(src)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 293, in libraries
maybe_upcxx_backend = yield cxt.upcxx_backend()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 213, in upcxx_backend
gasnet = yield cxt.gasnet()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 398, in memo_execute
yield failure
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 841, in execute
= yield me.get_config()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 601, in fire1
proxied = lam(arg_result)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 540, in result
return resultoid()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/memodb.py", line 458, in memo_execute
yield result
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobsrule.py", line 818, in execute
env = env1
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 751, in fire
arg = gen_throw(arg.exception, None, arg.traceback)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/subexec.py", line 124, in launch
out, err = yield go()
File "/shared/bonachea/UPC/upcxx/nobs/nobs/async.py", line 604, in fire1
proxied = lam(*arg_result._val_seq, **arg_result._val_kws)
File "/shared/bonachea/UPC/upcxx/nobs/nobs/subexec.py", line 62, in go
pid, ptfd = os.forkpty()
AttributeError: 'module' object has no attribute 'forkpty'
Comments (5)
-
Account Deleted -
reporter - marked as trivial
Internet searching seems to indicate this is a known Solaris problem.
-
-
assigned issue to
-
assigned issue to
-
reporter - changed milestone to Deferred indefinitely
This issue was triaged at the 2018-06-13 Pagoda meeting and assigned a new milestone/priority.
This issue was deferred indefinitely, because it does not affect correct operation on currently supported platforms.
-
reporter - changed status to wontfix
pull request #134 retires nobs from end-user support
- Log in to comment
Looks like forkpty isn't supported (at least by Python) on this platform. The only reason I capture output in a pseudo terminal as opposed to regular pipe is to grab the color codes and such which most compiler suppress if they think they're being piped. Easy fix to fallback to regular pipes if forkpty throws.