08:22:50 is there a modern recommended way of running the system without a usb stick? 08:24:08 yeh use piadm to install to disk 09:36:45 awesome, thx 13:04:32 what is the right thing to toggle in a svc manifest to not make a service start by default? i have a custom smf service but it should only be run manually and doesn't need to be run after booting 13:05:40 also, is there any built-in way for a(nother) service to detect that it's being invoked during boot? i'd like this service to run exactly once, after SMF comes up, and svcadm enable'ing it later shouldn't be possible. i'm sure i can do it manually by parsing some uptime-related thing, but i'm wondering if there's a built-in way 13:37:20 you can indicate in a manifest that it's disabled by default, so you'd have to explicitly enable it to run 13:38:00 and for most services, if they're enabled, they get run after any of their dependencies are satified during the boot process 13:46:21 w 13:46:22 "and for most services, if they'..." <- ho? 13:57:06 you have to create a manifest, and then there's a spot in /opt (I tihnk /opt/custom, but i'd need to look) that'll import it during the boot process 14:04:13 yes, i know that. i meant how to make the service not autostart (i want the manifest to get imported (that's /opt/custom/smf), but the service to default to disabled) 14:30:53 Does Flexible Disk not work in the portal? 14:34:15 Any SmartOS C devs around that could take a look at this strace? 14:34:18 https://bin.disroot.org/?82515b9df256399e#2pCpo1kNEeNhDk2ocopEtbnWrTcevGxj5xE7B2WPzwYE 14:34:28 I wonder how https://github.com/TritonDataCenter/illumos-joyent/blob/master/usr/src/uts/common/brand/lx/syscall/lx_socket.c#L3279-L3311 could return -1 EINVAL (Invalid argument) 14:35:52 This is the relevant line: 14:35:53 setsockopt(8, SOL_IP, IP_MTU_DISCOVER, [2], 4) = -1 EINVAL (Invalid argument) 14:39:30 Dumb question --> what numeric value is SOL_IP in Linux? 14:39:32 According to this: 14:39:33 https://sites.uclouvain.be/SystInfo/usr/include/bits/in.h.html 14:41:42 It's "0" and that is an illegal value in general. 14:42:36 case LX_IPPROTO_IP: 14:42:46 that's how IP_MTU_DISCOVER gets shuffled. 14:43:32 One could argue we need to handle SOL_IP == 0 in LX (never mind the other definitions of SOL_* that Linux has done). 14:43:51 See lx_setsockopt()'s definition for where one *might* need to fix that. 14:44:15 I've not checked the latest POSIX or Austin defs, but SOL_IP seems.... Linux-y? 14:44:24 Regardless, that it's 0 is why you're getting EINVAL. 14:44:48 If you change SOL_IP to IPPROTO_IP that'll fix it in the source program. 14:48:34 danmcd (LIBERA-IRC): Thank you, the source program is caddy, a reverse proxy written in go 14:49:10 fwiw I built caddy natively, just needed a small patch to avoid SO_REUSEPORT 14:49:14 seemed to run fine 14:49:17 Sometimes I think go is a stealth project to force the LInux ABI on the world whether it likes it or not... 14:50:24 jperkin (LIBERA-IRC): Did you try to start caddy v2.6.x in an lx-brand zone? see https://smartos.topicbox.com/groups/smartos-discuss/Te8e92fc14c1b3f9d/lx-brand-caddy-2-6-x-crashes-in-default-configuration 14:50:32 what's the proper way to set a v6 gateway for a zone? "gateways" doesn't seem to take ipv6 14:50:45 teutat3s: no in a native zone 14:51:09 jperkin (LIBERA-IRC): ah I didn't read that part well, gotcha 14:53:15 gonzosysadm[m]: That "gateways" doesn't take v6 is a bug, IIRC. You can, post-setup, use `route -p add -inet6 default ` which will have it persist across zone boots. 14:53:25 (I take it you don't wanna use NDP in this zone?) 14:53:32 (Sorry, Router Discovery?) 14:55:34 danmcd: noted .. seems the bug is open since 2016 too, heh 14:56:02 unrelated -- i need to use the same mac address for a zone as the one on the physical interface for the gz, but i get msg: dladm: vnic creation over i40e0 failed: MAC address reserved for use by underlying data-link when creating the zone 14:56:29 Yeah... "Make things v6-happy" is a longstanding issue that will require A Serious Effort. 14:56:36 multiple ips to a mac works, but the question is, does it work between a zone and the gz too? 14:56:42 No. 14:57:11 The ONLY way to have a physical NIC's mac address is to have that physical NIC itself assigned to the netstack (zone) you want. 14:57:27 If you have igb0 in the global zone, NO ZONE CAN ALSO HAVE igb0, for example. 14:57:45 On my home machine, I assign igb1 directly to the router zone (using "devices" in zonecfg(8)). 14:58:20 "MAC address reserved for use by underlying data-link" ==> means i40e0 owns that MAC, full-stop. 14:58:41 If you need it badly you'll need to assign i40e0 directly to the zone, and we don't allow that using the SmartOS vmadm(8) tooling. 14:58:42 yeah this is a machine on hetzner, they got some silly stuff going on with mac addresses. 14:59:11 problem is i also need the mac for the gz. i'm trying to avoid having to do the routing on the gz 14:59:27 Also of note, if you assign the physical NIC to the zone, any vnic on top of it can be snooped by root@zone. 14:59:35 unfortunately all packets going out of the machine need to have the right mac, or they get very unhappy 14:59:38 (My router zone is the ONLY one that uses igb1, in my example.) 15:09:20 danmcd (LIBERA-IRC): I'm confused, IPPROTO_IP looks like it's of the numeric value 0, too? https://github.com/TritonDataCenter/illumos-joyent/blob/master/usr/src/uts/common/brand/lx/sys/lx_socket.h#L211 15:09:43 Shit... hang on pls. 15:10:26 Internally too... 15:10:26 sys/lx_socket.h:#define LX_IPPROTO_IP 0 15:10:39 Hmmm, I wonder... 15:11:22 Assuming you can just make this happen by running the program, I will find a DTrace script I'd like you to run. 15:11:52 Please grab this: https://kebe.com/~danmcd/webrevs/downstack.d 15:12:19 danmcd (LIBERA-IRC): sure, I did find this one and made it run before https://docs.smartos.org/lx-branded-zones/#probing-socket-options 15:12:54 chmod it to 0755, and run it as "./downstack.d lx_setsockopt" 15:13:03 It's a Big Hammer, and it will produce a lot of output. 15:14:13 You can also insert an "exit();" line on line 14 (in the $1:return probe) for a single capture. 15:14:24 So run downstack.d lx_setsockopt 15:14:35 once it shows N probes enabled (N will be large) 15:14:45 Run the LX program that's failing. 15:15:04 The D script will follow the bouncing callstack down and back up again. We can see which exact function returns an error. 15:15:18 Then one can source-dive in that function to figure out WTF. 15:17:43 (you can also edit the script to narrow its reach to, say, just the lx_brand module) 15:19:46 hmmm dtrace: failed to compile script ./downstack.d: line 3: probe description ::lx_setsockopt:entry does not match any probes 15:21:58 Ah, does it need to be run from the global zone? 15:31:40 Yes. 15:31:45 Sorry, should've been clear about that. 15:32:14 Oh shit, it may produce too much output if you have already-running other LX zones (or even processes). 15:32:29 (Like I said it's a big hammer.) 15:35:43 danmcd (LIBERA-IRC): https://bin.disroot.org/?6c8adc188510ff3d#5zUR1nRyTyVpuUMAUtA8xMf2oYUVYx4uqg7XfPRsr3dc 15:35:58 Is that some useful output? 15:36:55 The CN seems to hang a bit, I might need to redirect it to a file to get all the output, if it looks like somethings missing 15:37:42 That shows a successful return of lx_setsockopt() (returns 0). 15:38:01 The CN hangs because that enables probes on ALL KERNEL FUNCTIONS> 15:38:05 Like I said it's a Big Hammer. 15:38:10 Lemme see if I can make some mods... 15:39:42 The last two probes, both have headers of: 15:39:51 ::entry 15:39:53 and 15:39:54 ::return 15:39:59 Change those to be: 15:40:01 fbt:lx_brand::entry 15:40:02 and 15:40:04 fbt:lx_brand::return 15:40:14 that'll lessen the impact 15:41:36 (Pardon latency... it's a Triton release week and I'm high-jitter Thursday afternoon and GONE until Monday when I'm at MNX.) 15:46:38 danmcd (LIBERA-IRC): No worries, thank you for looking into this with me 15:46:40 https://bin.disroot.org/?df3d3ba46ac994f5#G2bhFp1WqFmxpx1MfKLW7aBrm3Xe9FtYEZbLYV29gx5p 15:48:58 Found it. 15:49:22 One lx_setsockopt_ip call returns 0x16 == 22 == EINVAL. 15:56:11 Hard to figure out why right this second. 15:58:38 That function Should Work. I've followed the bouncing codepaths. 15:59:06 SOrry I can't help out more right this moment. 16:08:03 danmcd (LIBERA-IRC): thank you for your time (: 16:17:21 bahamat: The triton portal passes in options.dataset, and cloudapi doesn't know to put it on disks[0].image_uuid at https://github.com/TritonDataCenter/sdc-cloudapi/blob/master/lib/machines.js#L553 16:18:20 guessing triton portal should have options.image for input to api.Create or || params.dataset in cloudapi 16:28:31 Smithx10: What conditions trigger this? And what's the failure mode? I'm unfamiliar with this issue. 16:31:35 When a user tries to use a Flexible disk package I believe 16:31:58 And is this piranha, or adminui? 16:32:15 Piranha * 16:32:34 OK, we'll take a look at that and see if we can reproduce it. 16:33:13 Smithx10: Which version of Piranha? 16:33:32 Smithx10: And they're doing bhyve, right? flexible disk isn't supported for kvm, and makes no sense for lx/joyent brand 16:33:43 yea, bhyve 16:34:27 [root@5eaba95a-7637-6322-9d0a-9d08095d0db9 /opt/portal]# cat /opt/portal/package.json | json version; 6.0.1 16:37:05 OK, yeah, we'll try to see what's going on if we can. 16:38:14 Good timing, actually, because we're preparing a new release of piranha 16:42:22 yea, I just noticed that the create worked via node-triton, and not the portal with the same image and package. When I console logged the incoming requests into cloudapi from each, thats when I noticed https://github.com/TritonDataCenter/sdc-cloudapi/blob/master/lib/machines.js#L553 only acted on image. Piranaha was passing params.dataset. 16:43:06 Can you send me your package json out of papi? 16:43:12 Or to travisp 16:43:40 Just to make sure there's nothing we're missing in our testing. 16:43:44 package api? correct 16:43:50 Yeah 16:44:10 So from the headnode, sdc-papi /packages/ 16:45:11 What you get from `triton package get -j` isn't exactly the same thing as what's in papi. CloudAPI will gloss over some of the details that end users mostly don't care about. 16:45:48 https://gist.github.com/Smithx10/1ad12898607fb2d56a84f8797a96e6dd 16:49:32 Smithx10: We'd also like to see your config.pro.json, but there's secrets in there so scrub them. 16:49:43 And probably give me an msigned link 16:49:55 PM it to me