The interoperability of Fediverse platforms is so cool!!! Don't even have to leave the site you're on to contact someone in a completely different style of site. I love to see it.
As far as I’ve seen, they don’t provide any advantage over a string with spaces, which doesn’t work well either when you’ve got values with spaces:
<span style="color:#323232;">not_what_you_think=( "a b" "c" "d" )
</span><span style="color:#323232;">for sneaky in ${not_what_you_think[@]}; do
</span><span style="color:#323232;"> echo "This is sneaky: ${sneaky}"
</span><span style="color:#323232;">done
</span>
<span style="color:#323232;">This is sneaky: a
</span><span style="color:#323232;">This is sneaky: b
</span><span style="color:#323232;">This is sneaky: c
</span><span style="color:#323232;">This is sneaky: d
</span>
I remember a gamedev complaining about this on Twitter but the outcome he came to was that he hated that Linux users submitted bug reports, stating the OS itself was broken and he refused to help any of them.
Interesting take. I wonder if the amount of platform dependent bugs is generally that low for games. I’m a developer, but not a game developer. I would assume that platform dependent stuff comes into play a lot more, when using shiny new tech like direct storage, which is probably used more by AAA titles and less by indie games?
I made games primarily for Windows which we also compiled for Linux. It is mostly input/output stuff, aka hardware issues. That is, audio issues, input issues, storage issues, dependency issues. Modern game engine mostly handle the rest. It wasn’t such a big deal to fix, but most gamedev lacked experience with Linux, and most projects are already over budget and late, so fixing Linux for an extra 2-5% of sales didn’t make much sense at small scale. Proton kind off fixed all of this tho.
In my somewhat limited but relevant experience, the amount of platform specific bugs is indeed that low. I mean, there’s of course a layer of platform-specific low level stuff which is highly subject to platform specific issues, but once you go above that layer and into game code proper, most bugs are just bugs.
I didn’t fix 400 “Linux-only” bugs, but I did fix dozens of “seems Linux specific” and “only happened when at least one Linux client was connected” bugs, and a grand total of 2 were caused by platform differences. And of those two, zero were Linux specific. The platform difference in this case was about how different compilers optimise non-crashy types of UB.
Of course, we don’t want UB at all so the fix is to remove it.
The difference is money. Vulkan is an incredibly terse spec compared to dx12. You’d think that would make it much more consistent to work with, but really, it’s all it can do to keep up with msft and IHVs who pour money into coaxing AAA devs to use dx12. Then, even when the app gets something wrong and causes issues for end users, the IHV just makes a special case in the driver to correct it, because having a big important dx12 title run correctly on their hw is important to sell units.
Meanwhile, the same IHVs barely bother to support anything beyond the basic vulkan requirements, because it doesn’t gain them anything to do more. If a vulkan game experiences issues, IHVs don’t care because it won’t sell well anyway.
Yes, and the primary reason any of gaming on Linux is viable (steam deck, proton, etc) is due to Valve dumping money into it. AMD probably didn’t care about the miniscule number of chips they sold to Valve for the deck, valve just wanted a vendor who had the performance, and had decent Linux support.
But Valve is the one eating all the vulkan costs that msft normally eats on the dx side. To be clear, it’s never out of the kindness of their hearts, it’s purely because a msft dominated gaming ecosystem on PC is steam’s biggest weakness. They don’t want steam on windows to reach the point of EGS on the apple store.
From what I understand it’s basically like a “thin client” type of thing where the client loads the Kernel from local storage up to a certain point and then boots into a rootfs that is somewhere else on a remote server.
Basically, your system, if asked to, will boot into a limited mode where it exposes its drives over NVMe-TCP. It’s like taking the hard drive out and putting it into a different PC, but over the network.
Similar but in this case the Linux Kernel/Init System act as the PXE firmware so you don’t need a TFTP Server to load initramfs and a Kernel image. And you don’t need a NFS or Samba server because the Server has the drive with the rootfs already exposed to the network.
“target disk mode”, which this claims to be taking a lot of inspiration from, pretty much turns your computer into an external harddrive - so you can connect another machine to it for direct access. This appears to be trying to accomplish the same, but over the network.
If you’ve ever stuffed up a machine so badly that the best idea you could come up with, was to take the harddrive out and work on it from another machine - this pretty much allows you to do that. But instead of taking the drive out and putting it an external drive enclosure, you just ask the stuffed up machine to act as the external drive enclosure.
So this is a service aimed at exposing disks as nvme-tcp boot targets on boot of the system? I mean I love it, I wonder if this could be used to help with a chicken and egg problem I’ve had with building clustered systems easier. So far I either need a running service to host a network file system (like NFS or CEPH), or I need local disks that bootstrap the clustered storage environment.
Do you mount the drives using their /dev/sdX entries or via UUID? Because it sounds like you're using /dev/sdX entries (which you really shouldn't, because their names can randomly change, by design). Use /dev/disk/by-id/... directly for mounting or, alternatively, fill /etc/zfs/vdev_id.conf (see example below) and define the pool using their aliases.
alias Bay1 /dev/disk/by-id/ata-XXXXXXXXXXX1-YYYYY1_ZZZZZZZ4
alias Bay2 /dev/disk/by-id/ata-XXXXXXXXXXX2-YYYYY2_ZZZZZZZ4
alias Bay3 /dev/disk/by-id/ata-XXXXXXXXXXX3-YYYYY3_ZZZZZZZ4
alias Bay4 /dev/disk/by-id/ata-XXXXXXXXXXX4-YYYYY3_ZZZZZZZ4
Seems like there’s some bitrot in the middle of the file, and whatever you’re using to play back the original file just skips it and doesn’t care enough to halt playback. You might try looking for ways to restore as much of the file as possible with something like this, assuming the mkv is a unique copy that you can’t get anywhere else.
Edit: I’m also curious if this file lives on an XFS/BTRFS/ZFS filesystem. The reflink property of these filesystems may be the reason that you can copy within the same folder without it throwing an error.
Yes it lives on BTRFS, I tried a few solutions but some gave this Read error Error demuxing input file 0: Input/output error video1.mkv: Input/output errorand other things i tried said that i dont have hevc support(Yay Fedora) I might be wasting more time than necessary on the file.so i might just give up
Fair enough. I would at least try to get the damaged file off of the disk so you can potentially fix it later, or just have it available to play in its broken state. For the future you should probably be running monthly BTRFS scrubs to detect bitrot sooner, and potentially you should have some backups or data redundancy so you can repair the bitrot when it’s detected.
I did a BTRFS scrub on the partiton and this is what came up Duration: 0:17:54 Total to scrub: 63.82GiB Rate: 60.85MiB/s Error summary: read=528 csum=48 Corrected: 570 Uncorrectable: 6 Unverified: 0 I dont know what else to do from here
It goes without saying but the number of errors you should get on a scrub is ideally 0. Bitrot happens from time to time which is why you should keep some data redundancy/backups so you can repair it when it’s detected, but that number seems higher than normal. Your disk may be going bad if you’re getting that many read errors; I’m not sure. I believe you’re already backing up data off this drive but yeah I would get everything important off the drive ASAP, then run a SMART short test and a SMART long test to see if that reports that anything is wrong. The disk may be fine but better to be safe than sorry.
Back to the video file, I’m assuming it was not one of the ones that BTRFS fixed automatically? The only real options for data recovery are to rescue the file minus the bad blocks with e.g. ddrescue (which I don’t personally have familiarity with) or something similar, or to encode through the errors with ffmpeg if it will let you.
A SMART Test showed 6 bad sectors but overall disk assessment was ok(I dont think there is any connection between the file and the HDD), yes that file has not been fixed, the disk in question used to be my main bootdrive a few days ago, I shrunk the partition and created a new EXt4 and i am slowly copying files that are worth keeping, i removed the ODD from my laptop and installed a caddy, intend to use it as a second drive(The file in question has no sentimental value)
Okay cool. I would be wary of that drive just in case, and I would definitely schedule weekly SMART short tests and monthly BTRFS scrubs on it if you go with BTRFS in the future. EXT4/XFS/etc do not have a concept of data checksums, which means they can’t scrub and check for bitrot - this might be problematic if you find that your disk starts causing bitrot because you won’t know where it’s happening.
Thank you Id 197 and 198 reported 5 & 6 respectively(bad sectors decreased from 6 to 5), Is it possible to copy a file non sequentially; say back to front so i can just join those 2 parts together?
Try this answer. I guarantee there is a way to read the file front to back while skipping errors, but I run so much data redundancy that I don’t have any experience with it.
linux
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.