-
bbarker
What is SIGAPOLLO?
-
jbk
your process has gone off into space? :)
-
alanc
or worse, your process has been bought by HP and turned into it's brand name for UNIX workstations, but only late 80's/early 90's folks remember that one
-
-
rmustacc
bbarker: SIGAPOLLO is in code that is from ksh93/ast that is ifdef for apollo. So not something I believe that impacts us.
-
ptribble
People forget how astonishingly diverse the operating systems of the 80s/90s were, but Domain/OS was peculiar even by the standards of the time
-
alanc
the underlying Domain/OS was written in Pascal, not C, but then so was the Mac OS back then - the UNIX interface was a layer on top
-
jbk
ISTR someone describing that it could have different 'personalities' (for lack of a better term)
-
jbk
unless I'm thinking of something else
-
sommerfeld
yes, it had BSD and SysV "personalities" side-by-side. (I was at Apollo from 1988 through the HP acquisition and remained at HP for a long time afterwards)
-
sommerfeld
the user/kernel split in Domain/OS was .. different; the kernel interface was at a somewhat lower level. emulating unix/posix APIs in the presence of fork() is tricky because of how descriptors share seek pointers.
-
sommerfeld
but one thing this enabled was environment variable references in symlink targets.
-
sommerfeld
and one of the environment variables picked BSD vs SysV, and /bin and /usr/bin and a bunch of other paths were symlinks which included an environment variable reference that picked the desired variant.
-
bbarker
i was adding the signals to a coreutils library and was struck by how many more signals illumos had than every other supported OS, but I was already thinking a lot of it was probably historical! - thanks rmustacc, alanc
-
rmustacc
Where are you looking for signals?
-
sommerfeld
there were a few easter eggs in the OS (such as the 'unit will not fit thru 25" hatch' error code which memorialized an incident when field engineers reportedly discovered at pierside that there was no way to getting one of their workstations into a submarine...)
-
bbarker
rmustacc, usr/src/contrib/ast/src/lib/libast/features/signal.c
-
rmustacc
OK, that has nothing to do with what illumos provides.
-
rmustacc
That is what AT&T's cross-platform library knows about.
-
bbarker
i see - probably should have realized that after seeing it under contrib
-
rmustacc
Our defined signals are in signal.h(3HEAD) and you can find the header for uts/common/sys/iso/signal_iso.h.
-
rmustacc
But note that real-time signals can begin with a varying number and that can change explicitly.
-
sommerfeld
quoting from a PDF I found on bitsavers: "DOMAIN systems send the signal SIGAPOLLO whenever a fault occurs that is not
-
sommerfeld
otherwise mapped into a signal. Typical generators of SIGAPOLLO include network
-
sommerfeld
failures, display-acquire timeouts, and disk full errors."
-
rmustacc
So please make srue if you're transcribing signals you are paying attention to that (
illumos.org/man/3HEAD/signal.h).
-
rmustacc
SIGRTMIN and SIGRTMAX are not constants.
-
bbarker
rmustacc, wonderful - thank you
-
sommerfeld
(Aegis had its own error code system which was much finer grained than UNIX/Posix errno; the same code space was used for both the AEGIS equivalent to signals and for failure returns from system calls.
-
sommerfeld
)
-
alanc
Domain/OS also had some nice features that were ahead of its time, like transparently compressed files, and the ability to do "ps //nodename" to check on another host's processes
-
sommerfeld
looks like some docs have survived here, including some once internal-only docs:
bitsavers.org/pdf/apollo
-
alanc
if I remember correctly, the '//hostname/' part of the URL spec came from Apollo's use of '//hostname/' as the equivalent to Sun's '/net/hostname/'
-
sommerfeld
yes. partly via microsoft
-
alanc
The fact that "/.." actually resolved to a different directory ("//" - the root of the network namespace) did confuse some Unix folks
-
sommerfeld
uuids are another thing that escaped/survived from apollo.
-
alanc
bbarker: the Solaris signals should be almost all the same as illumos, but if you need a reference for them, see:
docs.oracle.com/cd/E88353_01/html/E37841/intro-2.html
-
alanc
75 EADI would be one notable difference
-
jbk
does escape imply they should be recaptured? :)
-
rmustacc
alanc: EADI looks like an errno?
-
alanc
oh, right, brain fart
-
alanc
-
alanc
and it looks like we failed to update that page for the one change we've made in signals (SIGAIOCANCEL replacing SIGLWP)
-
andyf
richlowe - usr/src/contrib/ast/ is populated from
github.com/illumos/ast so the spelling fixes will just get reverted next time we do a sync over for a bug fix (although we'll likely spot it and not care too much). I'd say generally let's not "fix" minor things like typos in contrib as a general rule. It looks like there were some unresolved comments to that effect on the gerrit review in the "default" change.
-
andyf
alanc
github.com/ksh93/ksh/tree/dev/src/lib/libast definitely has some good fixes, and I've cherry picked things from there in the past, but it also has some changes which I think head in the wrong direction.
-
alanc
the change in the
github.com/ksh93/ksh repo we're currently struggling with is the decision to always use temporary files and remove the fallback to pipes for command substitutions, since that breaks in services in which we've removed the privs to write to the filesystem since they don't need to do that
-
alanc
(based on what I've heard from the engineer working on it)
-
alanc
-
bbarker
alanc, thanks - I suppose I should fire up a solaris vm to test this change on. But trying to create an Oracle Account failed with an error :'-( I will try again later though. Does solaris report its OS string as "solaris" or "sunos"? Sounds like I may be able to assume the signals are the same?
-
bbarker
alanc, i'll double check the reference you sent in any case and follow up if I find any differences
-
alanc
depends where you're getting the OS string from. "uname -s" still reports "SunOS" to avoid breaking 30+ years of backwards compatibility. "uname -o" reports "Solaris"
-
alanc
bbarker: note the correction in the later discussion that I'd listed the errno reference there, and the signal one later
-
bbarker
alanc, would it be easy for you to run a small hello-worldish program in Rust to find out what I need? I can paste the one-liner here (no worries if not)
-
bbarker
oh SIGAIOCANCEL is in solaris now? gotcha
-
alanc
-
andyf
alanc interesting, thanks. I had a problem with a change where there was a bug in the support for multiple interpreters (which I later fixed and sent a PR), so they just started chopping out some of that support. I think it was a structurally bad change.
-
tsoome_
.oO "It should all be deleted when solaris_nevada ships."
-
alanc
oh, so 12 years ago?
-
tsoome_
apparently
-
tsoome_
-
alanc
heh, apparently I filed the bug to remove that code in 2014 - maybe I should go delete it one of these days
-
bbarker
If anyone has the easy ability to run rust programs on Solaris 11.4 - `cargo new hello` and replace the println in main.rs with: println!("Hello, {}", std::env::consts::OS);
-
tsoome_
:D
-
bbarker
oh, and then `cargo run` to execute
-
tsoome_
alanc btw, do you know why that source has assfail()?
-
alanc
bbarker: Hello, solaris
-
bbarker
alanc, awesome - thanks again
-
alanc
at least on Solaris 11.4.66 with rustc 1.70.0
-
bbarker
think i'm using the same rustc and that recent version is good enough for me
-
bbarker
of Solaris that is
-
alanc
technically, 11.4.66 is a slightly future version, but it's what I'm testing on at the moment
-
alanc
I don't think it changed from the versions we already shipped
-
alanc
tsoome_: no I don't, it appears to go back to the initial integration with the greenline project
-
richlowe
tsoome_: it makes no sense I can work out
-
richlowe
it's not public, it seems like it would make assert() loop
-
Agnar
good evening
-
Agnar
I asked yesterday, but would like to ask again: if bhyve complains that bhyve: PCI device at 7 is not using the ppt driver\ndevice em
-
Agnar
ulation initialization error: Device busy
-
Agnar
how can I figure out why bhyve thinks the device is busy when only ppt is attached to the device, pptadm list shows correct output? and why does the number "device at 7" doesn't match the pci slot I specified with -s 8,passthru,/dev/ppt0 ?
-
richlowe
pmooney and Woodstock are probably your best to ask
-
Agnar
I know, but I just wanted to try my luck here before directly annoying people :)
-
richlowe
Yeah, I was hoping they'd show up here when I pinged them :)
-
Agnar
haha
-
Agnar
ok :)
-
pmooney
the 'PCI device at <num> is not using the ppt driver' message is using the file descriptor, not the slot
-
pmooney
(which, to be fair, it does not make clear)
-
Agnar
ah! ok, that's pretty not intuitive :)
-
pmooney
agreed
-
alanc
richlowe: I don't think it will loop, since _assert is what's called when assert fails - the only thing I can think of is it allows userspace code to use the kernel's ASSERT() macro (from sys/debug.h) instead of libc's assert() macro (from assert.h), but usr/src/lib/libc/port/threads/assfail.c also defines an assfail()
-
Agnar
pmooney: so, I try to forward a wifi card. I see the ppt0 in pptadm list seeing the device, no other entries are in the path_to_inst for that pci device (except ppt of course) - what could make the device busy?
-
pmooney
This is on an intel machine, I assume?
-
Agnar
yes, a thinkpad T530
-
richlowe
alanc: you're right, I mis-counted _'s
-
Agnar
pmooney: could it be an issue with my CPU?
-
alanc
that is amazing naming where distinguishing the number of _'s changes the whole meaning - I can see why the kernel chose assfail instead
-
pmooney
Agnar: well if you were on AMD, the ppt stuff hasn't been wired up
-
Agnar
pmooney: no, it's a Core i7-3630QM
-
pmooney
but on a consumer (read: non-Xeon) part of that vintage, I don't know if the iommu stuff is exposed
-
richlowe
the difference (I think) I see is the opposite of the comment in libc's `__assfail` about how libc has it to avoid gettext
-
Agnar
pmooney: it used to work on my T470 with a bit more modern core i5
-
pmooney
admittedly this is an area of bhyve that has not been a strong focus
-
richlowe
and then libc's assfail() just calls __assfail because libaio used to expose it (ugh)
-
Agnar
pmooney: but yeah, that sounds plausible.
-
richlowe
so it is possible uutil is trying to get the apparent gettext() call back?
-
richlowe
I think
-
Agnar
pmooney: thanks so far!
-
richlowe
and check_fnames went away with direct bindings/synonyms.h purging
-
richlowe
Yeah, I dunno tsoome_. It is local in libuutil, and I don't see a way anything could call it
-
richlowe
(libuutil doesn't use the sys/debug.h ASSERT/VERIFY family)
-
jbk
it also has it's own panic bit.. wonder if it'd be useful at all to wire it into upanic(2)
-
richlowe
I know Robert had had thoughts about that
-
rmustacc
About uutil?
-
richlowe
about more stuff using upanic(2)
-
richlowe
in general
-
rmustacc
Ah, yeah. In general, it'd be good. Looking at that, I'd replace anything spinning trying to abort with upanic().
-
rmustacc
So that seems a reasonable candidate for simplification there jbk.
-
gitomat
[illumos-gate] 16008 crypto commands should not be isaexec'd -- Richard Lowe <richlowe⊙rn>
-
gitomat
[illumos-gate] 16014 don't deliver /usr/lib/locale/C from closed-bins -- Richard Lowe <richlowe⊙rn>