-
ek
Macer: It will work, but it will almost certainly cause a need for rebuild/scrub (depending on if you're using those identities for ZFS inclusion.)
-
ek
Shouldn't cause any problems with the disk(s) or data, though.
-
rwp
Macer, I don't know about the path property but I have changed the paths by importing the array using the desired path. For example by booting install media, getting a shell, and then "zpool import -d /dev/gpt" so that it uses the /dev/gpt paths to the persistent gpt labels rather than the not persistent /dev/ada0 or /dev/da0 type of paths. And then once imported and changed then I have rebooted and the change persisted that way.
-
rwp
I'll make a note that there is a zpool path property, though I can't find my information about it, and try it the next time I am in need of making that type of change.
-
rwp
Macer, Alan Jude says that setting path works and that's authoritative:
youtube.com/watch?v=Yy8fhyrBV-Y&t=155s
-
Macer
rwp: yeah i was about to say
-
Macer
there is a way to do it on the fly. i've done it before :)
-
Macer
i mean it isn't like the disk disappears. the label does. zfs probalby just finds it with the tag and renames it to something and then you can just rename it later
-
Macer
no scrub/rebuild necessary
-
Macer
i think it was when i had imported a pool from elsewhere and it used some other way to name them. but i vaguely remember being able to change the gpt/label on the fly for the pool
-
Macer
rwp: i'll test it on the pool i'm going to dismantle and see how that works
-
SponiX
Macer: how did your operations go? did recovery work?
-
ukluna
-
Matt|home
o\
-
rwp
Macer, The FreeBSD kernel does something that other kernels don't. As soon as any of the /dev device paths is opened to a device then all of the other alias paths to the same device are hidden.
-
rwp
Which means that if /dev/ada0p3 and /dev/gpt/mygptlabel point to the same partition then if/when zfs opens /dev/ada0p3 then /dev/gpt/mygptlabel is hidden and no longer visible. It actually causes more confusion than it helps in my not so humble opinion.
-
rwp
Setting the zpool path doesn't actually change what is open now. It sets the path that zfs uses to find that partition when it is next imported. So right now setting it to a different path won't actually find the newly set path because it is hidden. But upon reboot and booting up then all of those paths will be visible and it will open the newly set path and again the other aliased paths will then be hidden.
-
rwp
Hope that description makes some sense of things.
-
Macer
SponiX: if you’re asking about me expanding the raidz2 vdev… it went well once I didn’t have sketchy disks. I expanded twice already.
-
Macer
And I guess it’s good to know that if there is a failure during expansion then zfs handles it well.
-
SponiX
Macer: well congratulations on the successful operations :)
-
mzar
Macer: so did you have to replace faulty drive first and then resume the expansion, or just replacing the drive was enough to make the whole expansion sucessfull ?
-
lnxsrt
has anyone successfully booted the recently released alpine 3.23 (linux 6.18) with bhyve? I'm getting a hang at "Loading initial ramdisk...". Alpine 3.22 (linux 6.12) works fine.
-
kerneldove
i used to run: tmux new-session -s sess 'mybin > /home/me/app.log 2>&1; exec $SHELL'. but then i wanted to make sure all errors were redirected to app.log so i changed it to: tmux new-session -s sess 'exec > /home/me/app.log 2>&1; mybin'.
-
kerneldove
but now the problem is when mybin terminates, the tmux session doesn't terminate. so how can i have all errors redirect to the app.log, and also have tmux session terminate when mybin terminates?
-
scoobybejesus_tl
makes me wonder whether you need an interactive terminal session or whether you can just daemonize it and have daemon redirect the logs however you want
-
wsky
:)
-
kerneldove
eventually but for now i'm gonna keep using tmux
-
Macer
mzar: I had to replace both of them.
-
Macer
The expansion just halts. Even on 1 read error.
-
Macer
And the read error just wouldn’t clear. It’s kind of weird because I figured after trying to clear it a couple times that the read error would disappear and the drive would mark it as uncorrectable. Instead after I tried to clear it a few times the drive just fell off the pool and was kicked out.
-
Remilia
uncorrectable is not very easy to get set unless you use MHDD or the like
-
mzar
thanks for the report Macer
-
cpet
installing stable drm gives different versions see if any help
-
cpet
removing the modesetting driver makes the screen not tear up
-
kerneldove
what would the difference be between: tmux new-session -d -s sess 'mybin &> /home/me/app.log' and: tmux new-session -d -s sess 'exec mybin &> /home/me/app.log'?
-
ridcully
kerneldove: isn't that nohup with extra steps?
-
kerneldove
don't know
-
mzar
kerneldove: that's probably beyond of the support capabilities of this channel, please try to inquire for more details at #tmux
-
Macer
Remilia: oh. I figured drive fw would try a couple of times and give up.
-
cpet
kerneldove: when you run something with exec the parent process dies and whatever exec is executing becomes the parent, using no exec runs that program as a normal shell command
-
cpet
so if ps youll see sh bleh vs just bleh
-
Remilia
Macer: generally the firmware does not mark anything uncorrectable while the drive is ‘online’
-
Remilia
they are called ‘offline uncorrectable’
-
Remilia
I do not remember how exactly it works but iirc software like MHDD uses ATA/SCSI commands to directly tell the drive to mark a sector, after verifying that read times on that sector exceed 300-500 ms
-
kerneldove
cpet, ah ok so i should use the version with exec if i want mybin exiting to terminate the tmux session, right
-
kerneldove
?
-
cpet
Yes, a
-
cpet
hard drive's firmware automatically detects and marks bad sectors as they occur, remapping them to spare sectors to keep them hidden from the operating system, a process called reallocation. This happens during write operations when error correction detects failures, and the drive uses its built-in reserve pool to replace the faulty physical location, preventing data loss and OS errors until that spare pool
-
cpet
runs out
-
cpet
kerneldove: any shell command that exits will cause tmux to temrinate that session
-
cpet
everytime HD bad sectors are mentioned it reminds me of the badsect program we had long ago
-
kerneldove
i haven't seen that behavior *shrug*
-
cpet
kerneldove: i run fossil in tmux if it shuts down the session shuts down
-
cpet
i have never seen it go back to a shell prompt
-
cpet
and the scripts isn't that complex
-
cpet
tmux new fossil server --baseurl
fossil.unix.beer --nojail --repolist /var/www/fossil.unix.beer/
-
cpet
kerneldove: I remeber one time when we had a long discussions about running exec x in .xinitrc vs without
-
Macer
Remilia: wonder how well that would work for an smr drive. I guess those read just as fast as cmr. It’s the writing that is problematic.
-
Macer
-
Macer
So… terminate on exit?
-
Remilia
Macer: no
-
Remilia
it's exec() vs spawn()
-
Remilia
exec() means the process that called it exits immediately and then the new process is started, possibly with FDs and environment etc. passed
-
Remilia
if you `exec ls` your login shell terminates and once ls finishes you're back to login
-
Remilia
(if you do that from your login shell that is)
-
Remilia
if you have a screen or tmux session open, open a new window and `exec ls` and watch it close immediately
-
Macer
🤔
-
Macer
I’ll have to try that out.
-
dvl
How does one get UCL output from FreeBSD commands? I ask because I'm told pkg has UCL, but nothing in the man pages.
-
zi
dvl: im not sure it outputs ucl, but pkg supports ucl in pkg-message, etc. files
-
dvl
zi: Oh yes, that'
-
dvl
s where Ive see it
-
cpet
-
dvl
cpet: yeah, found that page when searching for freebsd pkg ucl
-
dvl
the other idea is using lua, built int.
-
cpet
the only output commands can do is xo
-
dvl
-
dvl
cpet: You refer to pkg-message there? I need pkg-repositories
-
cpet
local ucl = require("ucl")
-
cpet
local parser = ucl.parser()
-
cpet
parser:parse_string("key = value; num = 100") -- Parse UCL
-
cpet
local obj = parser:get_object()
-
cpet
local json_string = ucl.to_format(obj, 'json') -- Convert to JSON
-
cpet
print(json_string) -- Prints: {"key": "value", "num": 100}
-
cpet
theres lua to json
-
cpet
er ucl to json
-
cpet
so you have the ucl parser that then concerts that to json
-
cpet
for lua
-
cpet
there ya go bill in the mail
-
cpet
you know that you will get quicker calls for help if you offer some $$$ heh
-
dvl
Thank you. I had something similar in that URL.
-
dvl
I need to modify it to read from STDIN and output to STDOUT. So I put out a call:
bsd.network/web/@dvl/115708352504899727
-
dvl
I may be able to research this over the weekend. I've done similar with Python code, but I'd like to not add Python to the dependencies of this project.
-
cpet
libucl offers pretty much all that
-
dvl
Good!
-
cpet
-
cpet
General syntax sugar
-
cpet
heh
-
dvl
I find no docs there. For example, I want to know more about parser:parse_string() because that seems to be the function call I need to modify
-
cpet
-
dvl
-
» cpet pets awk
-
» bdrewery awks cpet
-
» cpet runs
-
cpet
weirdo
-
dvl
So from there, where?
-
cpet
bora bora
-
bombuzal
Uncle Osama?
-
cpet
uncle sam?
-
dvl
Sam Drucker
-
dvl
I have so many trails, I'm going to review them another day.