248
submitted 1 day ago* (last edited 1 day ago) by bi_tux@lemmy.world to c/programmerhumor@lemmy.ml

This happend to me right noww as I tried to write a gui task manager for the GNU/Linux OS

all 28 comments
sorted by: hot top controversial new old
[-] ulterno@lemmy.kde.social 2 points 8 hours ago* (last edited 8 hours ago)

What language were you using?
Python maybe? I don't know of any other interpreted language, that you may be calling system commands from, without saving to disk

I use C and C++ and my IDEs save to disk before compiling. Makes sense to not try compiling when there are potentially 2 versions (one on RAM or /tmp and one on Disk) and the build system might be running multiple commands, which the IDE may/may not know of, in my case.

[-] Hupf@feddit.org 15 points 1 day ago

My first programming related memory is of the QBasic interpreter.

I had written some code I was quite happy with, but not saved it yet. As part of a subroutine for sound output, I quickly wrote a loop from 20 to 20000 to output a test signal over 1 second each with that frequency via the PC speaker and hit execute.

Realizing my mistake, It being MS-DOS and thus single-threaded, I couldn't Ctrl+C out of it without killing QBasic altogether and losing my code. I couldn't turn town the PC speaker.

I ended up closing various doors between the PC and me and waiting it out.

[-] deathmetal27@lemmy.world 34 points 1 day ago

Try it again

Do you know the definition of insanity?

[-] digdilem@lemmy.ml 11 points 22 hours ago

What's really insane is that sometimes the second identical test actually works.

[-] littlewonder@lemmy.world 1 points 1 hour ago

Then you breathe a sigh of relief, merge it with a comment of "bug fix", write no documentation--especially about how it failed testing, and quit the gig during the inevitable helpdesk explosion; walking away from the fireball like the Michael Bay maniac you are.

[-] bi_tux@lemmy.world 47 points 1 day ago

Do you know the definition of insanity?

do you know software developers?

[-] deathmetal27@lemmy.world 2 points 1 day ago

But did you get the reference?

[-] bi_tux@lemmy.world 2 points 22 hours ago

I did, don't worry

[-] deegeese@sopuli.xyz 26 points 1 day ago

This is why VM snapshotting is so valuable.

My IDE is my real workstation, and it hosts a VM in which I can plop some code, run it, crash, revert and try again.

[-] CameronDev@programming.dev 18 points 1 day ago

How are you crashing your system?! Crashing program sure, but the entire system?

[-] sebsch@discuss.tchncs.de 21 points 1 day ago

Try it out on your own system.

:(){
 :|:&
};:

It's totally possible

[-] CameronDev@programming.dev 9 points 1 day ago* (last edited 1 day ago)

Doesn't explain OPs task management example. And won't crash the kernel, just make things unresponsive

[-] ulterno@lemmy.kde.social 1 points 8 hours ago

There's this game "HyperRougue". Run it on Arch.

hyperrogue-git version 13.0d.r60.g27fb2d92-1

Go to settings -> 3D configuration -> projection -> projection type -> . Cycle through the projection types. One of them causes something good enough to call a crash.

I don't remember anymore if it was just a display driver crash or a kernel crash and I haven't updated to a newer version (which might have fixed it).

[-] CameronDev@programming.dev 1 points 1 hour ago

Doesn't even startup on my box, but doesn't crash the kernel or system either, just regular application crash

[-] bi_tux@lemmy.world 13 points 1 day ago

it didn't crash the kernel, it just killed every process that isn't run by the root user, which kind of feels like a crash

[-] CameronDev@programming.dev 4 points 1 day ago

Ah, that definitely would feel like a crash. Sent kill signal to cgroup accidentally? Or just iterate over all processes and signal them all?

[-] bi_tux@lemmy.world 6 points 1 day ago* (last edited 1 day ago)

probably the later, but idk how, all I did was insert a string in the following command like this:

``Command::new("bash")

.arg("-c") .arg(format!("ps -aux | grep -i "{}" | awk '{{print $2}}' | xagrs kill -9", input)

.output()

.expect("error");``

I've tested the command and it worked flawlessly in the terminal, but I have no idea what I'm doing, since I'm new to rust and never worked with this library

[-] CameronDev@programming.dev 6 points 1 day ago

There are rust libraries to send signals, might be better to use those rather than calling bash. eg. https://docs.rs/nix/latest/nix/sys/signal/index.html

I'm guessing if input was "", then it would sigkill all processes? Less confident, but some functions behave slightly differently in an interactive console vs a non interactive, maybe ps has a different format when used non interactively?

Aside, you want three backticks and a newline to get code formatting :)
[-] bi_tux@lemmy.world 5 points 1 day ago* (last edited 1 day ago)

thx, btw I figured it out:

I forgot to trimm the string, so it had a line break in it which lead to grep showing the processes from the term I put in + all processes that contain a space/linebreak and appearently all processes shown by ps aux contain some kind of space (makes sense, since there are spaces between the user, pid, etc) so yeah, I ended up trying to kill every process on the system, but it only killed the user processes, since I ran everything without sudo

[-] n3cr0@lemmy.world 6 points 1 day ago

rm -rf

Works for . current directory. Yay!

... also works for / system root. 🔥 Nay!

[-] CanadaPlus@lemmy.sdf.org 3 points 1 day ago

Does it? I thought / specifically was protected, and you needed to add --no-preserve-root.

[-] n3cr0@lemmy.world 1 points 17 hours ago

It should, but I the end it depends on your system. Each distro has their own default behavior.

[-] CameronDev@programming.dev 3 points 1 day ago

That won't crash your kernel, and I was more curious about the OPs example. Task management is basically reading some files, and sending signals, it should be near impossible to crash the system.

[-] princessnorah@lemmy.blahaj.zone 2 points 10 hours ago

I believe it does crash the system eventually as important buts start to go missing?

[-] CameronDev@programming.dev 1 points 9 hours ago

Kernel shouldn't crash, and anything running in memory will be okayish, but it definitely will get less and less stable. It won't be possible to start new processes.

I have a Linux install on a USB SSD with a flakey connection, if I bumped the cord the root would unmount. It was fairly resilient, but graphics would slowly start disappearing. I'm fairly sure I could cleanly reboot as long as I had a terminal open, but its been a while, so maybe I'm misremembering.

Still, the overall system becomes pretty useless, so i guess its fair to call it a crash

[-] kwozyman@lemmy.world 3 points 1 day ago
[-] CameronDev@programming.dev 4 points 1 day ago* (last edited 1 day ago)

OPs example was task management, which doesn't require kernel modules.

this post was submitted on 20 Sep 2024
248 points (97.0% liked)

Programmer Humor

32067 readers
496 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS