-
toasterson
kill(893, SIGSEGV) = 0
-
toasterson
Received signal #11, SIGSEGV [default]
-
toasterson
siginfo: SIGSEGV pid=893 uid=0
-
toasterson
yes then it segfaults
-
toasterson
can a not existant file cause a segfault?
-
toasterson
-
jclulow
it seems to be sending itself a signal?!
-
jclulow
why does it do that
-
toasterson
ah, I found the problem
-
toasterson
my mac sends env variables that cause this
-
jclulow
locale things?
-
toasterson
limiting AcceptEnv limits things
-
toasterson
yes locale
-
richlowe
that still shouldn't segv?
-
jclulow
One would hope not
-
jclulow
Can you undo your AcceptEnv thing and "ssh -t $host env" maybe?
-
toasterson
sure
-
toasterson
-
toasterson
LC_CTYPE=UTF-8 might be the problem
-
jclulow
no value in any LC variable should cause a segfault
-
toasterson
true
-
jclulow
if you "LC_CTYPE=en_US.UTF-8 ssh -t $host bash" does that work
-
toasterson
yes
-
yuripv
why would it do that
-
toasterson
well even GNU has to work sometime. It just has no warranty when it will do which
-
yuripv
i mean if there's no "UTF-8" (or the variables are empty), just use "C", why segfault
-
jbk
rzezeski: as my brain is mush at this point, if you happen to recall this stuff:
github.com/illumos/illumos-gate/blo…mon/io/mac/mac_client.c#L3668-L3676
-
jbk
I'm kinda certain that on 3676 that should be |=
-
jbk
but have lingering doubts
-
jbk
-
jbk
and in this case the adapter isn't advertising lso or any hw checksum
-
rzezeski
jbk: so, I think you might be right about the |=, but I would want to double check that tomorrow with fresh eyes
-
rzezeski
however, I think that's separate from your panic
-
rzezeski
as that assert is checking that the IP stack requested the IP header checksum offload along with LSO
-
rzezeski
in your case you are saying the part advertisers neither offloads, which makes it very sus that you are in mac_sw_lso
-
rzezeski
if you can put the panic up somewhere I could take a look at it
-
jbk
let me see if I can figure something out
-
rzezeski
is this a customer thing?
-
jbk
no, just a place to upload it
-
rzezeski
ah okay
-
jbk
it's just a debug build of illumos-gate running under ESX w/ an emulated e1000g nic
-
rzezeski
okay, that's good to know, but I'm not going to have the cycles to stand that up
-
jbk
i might be able to do something tomorrow
-
jbk
umm..
-
jbk
ok.. i'm completely confused..
-
jbk
oh.. that's confusing.. dblk_ts have a number of fields (cksum flags) uninitialized
-
jbk
while others are
-
rzezeski
is this a vanilla kernel? because that sounds like it could be UAF
-
rzezeski
anyways, I'm going to bed now, but if you can share a panic tomorrow I'll look
-
Kernspin
Good morning.
-
neuroserve
morning
-
jbk
i believe kmem uses a different pattern for freed memory..
-
jbk
i looked at what allocb() does (because it was confusing the hell out of me)
-
jbk
it's using some kmem caches, but it doesn't initialize all of the fields
-
jbk
so some of them are set, some of them have the uninitialize pattern
-
jbk
deadbeef is the free pattern, baddcafe is the uninitialized pattern, and feedface is the redzone pattern
-
copec
Has anyone here tried VRML over Infiniband?
-
andyf
jbk - right, I usually have to look at umem_debug(3MALLOC) to remind myself, since it's the same as kmem
-
jbk
i don't think many people have used infiniband on illumos.. we have support for it, but I don't think there are drivers for any recent cards
-
jbk
at least for the infiniband functionality
-
jbk
(some cards e.g. mellanox ones work fine as regular network cards)
-
rzezeski
Did some spelunking on your panic jbk. There interesting bits thus far: 1) the mblk does indeed have HW_LSO, but nothing else (which is invalid), 2) the mblk is larger than e1000g0's MTU, 3) the ill this mblk is going over DOES NOT have ILL_CAPAB_LSO set (it does have ZC set, not sure if that's normal or not), 4) the e1000g0 mac DOES NOT have HW LSO or CHECKSUM enabled, 5) vmxnet3 ALWAYS provides HW LSO and CHECKSUM capab
-
rzezeski
it's almost like this packet was created to go over vmxnet, but instead ended up on e1000g0
-
jbk
they are on the same subnet--as i mentioned i threw that on the VM so I didn't have to use the console while testing out vmxnet3 improvements
-
jbk
so it's a bit unusual, but something that should be valid
-
jbk
granted, the chances of having real hw these days that doesn't do at least checksum offload seems slim to none
-
jbk
so it's probably a very niche corner case
-
rzezeski
Sure, but what I'm saying is for some reason a packet that seems like it should have gone over the ip interface on vmxnet3 is instead going over e1000g0
-
rzezeski
although given that vmxnet3 exposes partial checksum unconditionally it's very odd there is no hardware checksum flag turned on
-
rzezeski
do you have a modified vmxnet3?
-
rzezeski
oh wait, I just noticed vmxnet3 doesn't unconditionally expose LSO, but I don't see any way to easily check the state from a dump (this is a really weird way to code this)
-
jbk
their driver.conf file is also weird :)
-
rzezeski
if you changing this code you should change it so that it does the `vmxnet3_getprop` somewhere else and sets a flag in the software state, that way we can examine this state from a dump
-
rzezeski
but I did verify that your e1000g0 has no hardware offload enabled
-
jbk
yeah.. since it's virtual, not too surprising
-
rzezeski
like, I don't know if there's some confusion somewhere in the stack when you have multiple interfaces on same subnet with differing hardware offloads
-
rzezeski
jbk: were you running this ssh session for a while before the panic? Or was it the moment you try to ssh into the guest?
-
rzezeski
I guess it could work for a period before an LSO packet is generated
-
jbk
yeah it's a while
-
jbk
it was annoying because the assert would usually trip right as I was trying to look at something :)
-
rzezeski
oh wait, duh, this is hitting mac-loopback, wait wtf is going on
-
rzezeski
well the assert won't trip until you cause an LSO segment to be generated
-
rzezeski
so the session will work for a while and then boom
-
jbk
i think (just while doing this work) i'll take out the asserts... at first I had thought it was maybe the bit I pointed out last night (which sounds like it is a legitimate, but separate issue)
-
jbk
which is why I pinged you (since it looked like you were the most recent visitor to that part of the code)
-
toasterson
richlowe: andyf I could confirm the update problem KungFuJesus was reporting. They are indeed caused by system/library/processor still being incorporated and not having a new version. uninstalling the package solves this. It should however either be obsoleted or not incorporated anymore
-
toasterson
-
rzezeski
I wouldn't take out the assert, it's a correct assert. You might run into even weird behavior. I don't understand why this is invoking the mac_hw_emul routine, that might be a much larger bug, as I thought it was only being invoked when about to traverse mac-loopback, but in this case we are at code which comes before the mac-loopback check
-
rzezeski
I also don't understand why the packet has HW_LSO set but not HCK_PARTIALCKSUM (assuming this packet was created to go over vmxnet3), mac_sw_cksum() does erase that flag after it does that work, but the assert is made before that runs
-
rzezeski
also it looks like MAC_LSO_EMUL also implies checksum fix ups, which makes sense, because it *has to* do that work since its generating a completely new chain of segments, so it has to generate checksums for all those, that's why it's `=` vs `|=`
-
rzezeski
but it wouldn't hurt for me to add a comment above that explaining what's going on
-
rzezeski
so for me, the big questions for me are: a) why is a packet come down the e1000g0 ill with HW_LSO enabled and b) why is mac_hw_emul() getting invoked
-
rzezeski
It seems like (b) could be a fuck up on my part, how we handled local packets and offlaods changed, and I decided that it was too much of a liability to not emulate offloads when going over loopback, as the IP forwarding mechanism and the TAP devices brought in all kinds of edge cases
-
rzezeski
my comment about the mac_hw_emul() call in mac_tx() says this is only getting invoked if IP-forwarding over mac-loopback is happening, but this is a generic portion of mac tx, and I'm not really sure if past Ryan was correct or if this was some slip up on my part when I undid all the checksum trickery around mac-loopback
-
KungFuJesus
is pkg uninstall graphics/nvidia considered generally safe?
-
KungFuJesus
it seems to be blocking some updates for me and I have no nvidia hardware installed
-
richlowe
it should be
-
gitomat
[illumos-gate] 15043 smbadm - need ability to read credentials from stdin -- Gordon Ross <gwr⊙rc>
-
gitomat
[illumos-gate] 15026 libsec mistakenly assumes a SID is a group SID -- Gordon Ross <gwr⊙rc>
-
gitomat
[illumos-gate] 15039 kernel initializes early GDT -- Dan Cross <cross⊙oc>
-
tsoome_
I'll do the RTI build for 15077 once this build is done...
-
tsoome_
btw, is there way to serialize gmake build? (other than -j 1)
-
tsoome_
this build VM has 11G ram + 22G swap and oomkiller is having party there:D
-
rmustacc
gmake or dmake?
-
richlowe
both should serialize with -j1 or no -j
-
richlowe
our make also has -mserial
-
tsoome_
gmake
-
tsoome_
dmake is nice;)
-
richlowe
but I'm really confused about both having an oomkiller, and what you need to build for an RTI with gmake :)
-
tsoome_
unfortunately that build system is rewritten to use gmake...
-
tsoome_
and no, thats not RTI build;)
-
copec
jbk I was making a stupid joke :-P although I did play around with old IB on OI probably more than a decade ago
-
jbk
you say that, but I have a coworker that wants to do iSCSI over infiniband
-
rzezeski
jbk: okay, so pretty sure _part_ of this is my bug, introduced in my work for SmartOS OS-8027, where i reverted a bunch of the mac-loopback hardware-offload avoidance schemes (with the goal of better perf), but forgot to undo part of that work in mac_tx().
-
rzezeski
However, I'm also thinking that logic in mac_tx() was never appropriate, it did correctly address the problems discussed in OS-7520, but it also was applying to situations outside of IP forwarding when it shouldn't
-
rzezeski
Or at least that's my current theory, and I'm going to test that out later today
-
copec
jbk iirc I had iser and srp working with the comstar on ib, but those are ancient adapters now
-
rzezeski
However, I think there is potentially a second issue at play, where having multiple NICs on the same subnet with different hardware offloads, might somehow be broken
-
rzezeski
that's something I'll also try to dig into if I can
-
rzezeski
The good news is that if my theory is correct we should get some nice efficiency wins and maybe some perf bump
-
rzezeski
Even if I fix what I think is my bug, from what I can see in your crash, you are still going to have a problem because you are going to be sending a packet with HW_LSO down to e1000g0, and it's going to drop that on that floor because e1000g_retrieve_context() will return false since there is an LSO flag but no checksum flag.
-
rzezeski
But since it's TCP you probably won't notice at all
-
rzezeski
anyways, I gotta take a break, but should return to this later
-
toasterson
KungFuJesus: it's safe
-
jbk
on the plus side, i've got vmxnet3s working w/ multiple rings now... so hopefully anyone using illumos in vmware should see some benefits soon
-
jbk
though it does feel a bit 'wrong' using camel case in the kernel :( (matching existing style here)
-
yuripv
camel case was only for definitions coming from VMware, no?
-
jbk
yuripv: yeah
-
jbk
it looks like freebsd has made more changes here (while I didn't port any code from freebsd, I did use it as a guide to know where you reported the additional rings)