WTF Bites


  • Java Dev

    @PJH The enclosure is made from 100% recycled materials, so...




  • :belt_onion:

    Dentist Seth Lookhart has been found guilty of fraud and unlawful dental acts and was sentenced to 12 years in prison this week.

    Unlawful dental acts??? :giggity:


  • Notification Spam Recipient

    Status: wat

    53b78508-02f6-489c-9fd7-0347e2152d6f-image.png


  • Discourse touched me in a no-no place

    @Tsaukpaetra said in WTF Bites:

    Status: wat

    53b78508-02f6-489c-9fd7-0347e2152d6f-image.png

    It's not news to me...


  • ♿ (Parody)

    We were supposed to deploy a release candidate for acceptance testing on Monday. Today the customer tells about some new requirements for who can see what data. It's partly authorization/permission based but part based on which organization a user is from and who owns the data. It seems to contradict a bunch of assumptions we have in a lot of different places related to navigation, etc, so it's...complicated.

    Motherfuckers.


  • Grade A Premium Asshole

    The DVR software we typically deploy had an absolute shitshow of a fuckup today.

    Here is the best I can figure out after resolving the issue. At some point it decided that it needed to cut recordings due to :raisins:. Now you can configure the reason to cut video for lots of different triggers. You can cut video on time period, file length, before or after event triggers, etc. This particular DVR is only supposed to cut video every hour on the hour. But it spazzed out and created enough empty video files (they displayed as 0kb) that it completely filled the 4TB of buffer space on the storage array. After it did that the program started filling RAM until the machine was completely locked up and unresponsive to input, although it never did trip any offline alarms and would respond to ping.

    Rebooted the machine through the DRAC, I was barely able to get logged in before it totally shit itself again and it did so well before I had any idea what was going on. Lather, rinse, repeat a second (and probably third) time. Eventually I had the bright idea to write a one line script that I could set to fire from our RMM when it booted up to disable the service as quickly as possible.

    Well, since the storage array that it filled up is an iSCSI volume and deleting an absolute fuckton of files (millions? billions? What is the largest file you can create that Windows will still show as 0kb? Divide 4TB by that and get your lower bound.) it took quite a while to clean it up to the point that video would record again. I opened Resource Monitor and disk queue lengths were approaching NaN territory.

    But then it was throwing lots of errors. File system and system file corruption to the point that SFC and DISM would not fix. I had to transfer over an appropriate installer ISO and use that as the DISM source.

    After that was fixed the DVR was absolutely fucked and confused due to the database containing several orders of magnitude more entries than it was ever designed for, and references to tons and tons of files that were now missing. There were other options for repair, but since the normal database maintenance did fuckall I just nuked the database entirely and used their method of rebuilding the database from scratch. You normally only do that if a system completely shits itself. You can recover from a failed OS or hardware by importing your config and then it will rebuild its database based on the files in storage locations. We were basically at that point, and it is essentially sure to work. I guess we will find out in six hours or so.

    So did the OS corruption cause the DVR to shit itself, in which case the "creating millions of tiny files" is done with and the problem is solved? Or did the DVR shitting itself, jamming RAM enitrely full and multiple hard reboots from DRAC cause the file system and OS corruption?

    :mlp_shrug:

    I guess time will tell. If I were to hazard a guess we will be replacing this machine pretty soon.



  • @boomzilla we had something similar two weeks ago. Delayed the launch a week, but that's their fault. Much simpler criteria though, just opt in.


  • Notification Spam Recipient

    @boomzilla said in WTF Bites:

    . It seems to contradict a bunch of assumptions

    "see the approved signed-off requirements doc"



  • @Polygeekery said in WTF Bites:

    (millions? billions? What is the largest file you can create that Windows will still show as 0kb? Divide 4TB by that and get your lower bound.)

    728 bytes. I happened to want to know this yesterday and that's the number I found. So ... 40-50 billion depending on what combination of 10-/2-based prefixes your drive manufacturer uses?


  • Considered Harmful

    @Watson said in WTF Bites:

    40-50 billion

    :um-actually: NTFS can have 232-1 files per volume.



  • @Polygeekery said in WTF Bites:

    What is the largest file you can create that Windows will still show as 0kb

    8 PB, pedantically speaking.

    More realistically, each file takes up 1KB in the Master File Table for its name and other standard information, plus ~32B of directory entry space. Provided the file's less than about 600B long, it's entirely stored in that record with no further allocation. Since the DVR probably isn't doing shenanigans, 4 billion files is your upper limit.

    Since Windows never reclaims any space allocated to the MFT, it might be a good idea to nuke and pave the data volume so that its bookkeeping gets back to a sane state rather than having unreclaimable extents all over the place.



  • @Watson In my experience one byte in the primary data stream is enough to make it show 1KB. It depends highly on the timing Explorer asks the filesystem what the size is and whether or not any programs have closed the file after writing in it at that time. And whether or not they have it open using the same name that Explorer sees (i.e. hard links).



  • Weirdly, today I do the same thing as I did yesterday and I get different results.
    Clipboard01.png
    Something something definition of insanity.


  • Notification Spam Recipient

    @Watson off-by-one?



  • @Watson Oh, you're checking "Size on Disk". Which is not "Size".

    Information on files is stored in the Master File Table. Each file occupies at least one record, which by default is 1 kilobyte each. The record contains some standard information (C/M/A times, owner, recovery information), the security settings for the file, the parent directory and name of the file, and some record-keeping information. If all that fits into less than 1KB, then the remainder can be used to store file data. Otherwise, the remainder is used to store a list of 4KB disk clusters where the file can be found; if that takes up more than what's left it gets moved to its own 1KB record, or potentially into clusters just like the file data.

    With the specific names you gave those files, and no special security settings, the record-keeping information in the MFT only took 288 bytes, leaving 736 bytes for file data. Different names, different security settings, or alternate data streams (thumbnails? previous versions?) would reduce that accordingly.


  • 🚽 Regular

    @Polygeekery said in WTF Bites:

    I had the bright idea to write a one line script that I could set to fire

    I for one am starting to get sick of all the pyromania jokes.


  • Discourse touched me in a no-no place

    @TwelveBaud said in WTF Bites:

    Since Windows never reclaims any space allocated to the MFT

    Which is the one thing truly wrong with how NTFS works in practice, and only when you're recovering from some piece of software deciding that making lots of files is a great idea. OTOH, I don't write filesystems so I've no idea how it could be fixed. 😜


  • Notification Spam Recipient

    @dkf said in WTF Bites:

    I don't write filesystems so I've no idea how it could be fixed.

    Offline defragmentation and compaction, which in practice would never happen anyways because Windows never actually leaves the filesystem in a clean state anymore unless you're actually rebooting (as opposed to "shutting down").


  • Discourse touched me in a no-no place

    @Polygeekery said in WTF Bites:

    although it never did trip any offline alarms and would respond to ping

    All of which points to the monitoring system needing to be enhanced. Very often you don't really care all that much about the ping (which just says that the OS kernel itself and the network hardware are live), but rather whether critical services on the machine are up and responding. I've set up nagios to do that sort of thing in the past, but I don't have notes on the details any more (it was part of a project I'm happy to not be involved in any more).



  • :wtf:? Microsoft!

    I left Excel 2016 sitting quietly on my PC while I did the dishes, and when I came back, it had a little banner message inviting me to try Office 365.

    Dooooooooodzzzz!!!! If I wanted Office 365, I'd have installed that rather than paying for a standalone Office license.



  • @Tsaukpaetra said in WTF Bites:

    @dkf said in WTF Bites:

    I don't write filesystems so I've no idea how it could be fixed.

    Offline defragmentation and compaction, which in practice would never happen anyways because Windows never actually leaves the filesystem in a clean state anymore unless you're actually rebooting (as opposed to "shutting down").

    If you disable Fast Startup / Fast Boot, it does a clean shutdown. (Might require you to also disable hibernation.)



  • @TwelveBaud said in WTF Bites:

    @Watson Oh, you're checking "Size on Disk". Which is not "Size".

    Information on files is stored in the Master File Table. Each file occupies at least one record, which by default is 1 kilobyte each. The record contains some standard information (C/M/A times, owner, recovery information), the security settings for the file, the parent directory and name of the file, and some record-keeping information. If all that fits into less than 1KB, then the remainder can be used to store file data. Otherwise, the remainder is used to store a list of 4KB disk clusters where the file can be found; if that takes up more than what's left it gets moved to its own 1KB record, or potentially into clusters just like the file data.

    With the specific names you gave those files, and no special security settings, the record-keeping information in the MFT only took 288 bytes, leaving 736 bytes for file data. Different names, different security settings, or alternate data streams (thumbnails? previous versions?) would reduce that accordingly.

    The other thing that's wrong with putting too much faith in "Size on Disk" versus "Size" is sparse files. You can end up with a file whose "Size" claims to be many GB while its "Size on Disk" is only 4KB, because it's a sparse file containing what amounts to 4K of actual data and all the rest is "empty" and the sparse file support in NTFS automatically feeds you zeroes if you read a sparse part of the file. (And the curious conundrum of a "Disk Full" error when writing to the middle of a file...)


  • Grade A Premium Asshole

    @dkf said in WTF Bites:

    @Polygeekery said in WTF Bites:

    although it never did trip any offline alarms and would respond to ping

    All of which points to the monitoring system needing to be enhanced. Very often you don't really care all that much about the ping (which just says that the OS kernel itself and the network hardware are live), but rather whether critical services on the machine are up and responding. I've set up nagios to do that sort of thing in the past, but I don't have notes on the details any more (it was part of a project I'm happy to not be involved in any more).

    Ours does exactly that. Its installed as a service on the OS, checks to see if services are running and reports back to central services that monitor such things. As far as it was concerned everything seemed fine. It had tripped some low disk space alerts and high resource usage. But those aren't entirely uncommon. It will do that on occasion anyway.


  • Grade A Premium Asshole

    @Steve_The_Cynic said in WTF Bites:

    @Tsaukpaetra said in WTF Bites:

    @dkf said in WTF Bites:

    I don't write filesystems so I've no idea how it could be fixed.

    Offline defragmentation and compaction, which in practice would never happen anyways because Windows never actually leaves the filesystem in a clean state anymore unless you're actually rebooting (as opposed to "shutting down").

    If you disable Fast Startup / Fast Boot, it does a clean shutdown. (Might require you to also disable hibernation.)

    It would also require you to re-disable it after every update. MS re-enables it constantly when the OS updates.

    We set the registry values via a daily maintenance script just to make sure that it stays disabled.


  • ♿ (Parody)

    @Tsaukpaetra said in WTF Bites:

    @boomzilla said in WTF Bites:

    . It seems to contradict a bunch of assumptions

    "see the approved signed-off requirements doc"

    The what now?



  • @Polygeekery said in WTF Bites:

    @Steve_The_Cynic said in WTF Bites:

    @Tsaukpaetra said in WTF Bites:

    @dkf said in WTF Bites:

    I don't write filesystems so I've no idea how it could be fixed.

    Offline defragmentation and compaction, which in practice would never happen anyways because Windows never actually leaves the filesystem in a clean state anymore unless you're actually rebooting (as opposed to "shutting down").

    If you disable Fast Startup / Fast Boot, it does a clean shutdown. (Might require you to also disable hibernation.)

    It would also require you to re-disable it after every update. MS re-enables it constantly when the OS updates.

    Curious. Mine seems to be off according to the power-button config page, and has been for ages. (And yes, I have Windows 10 2004 Pro, on a domain.) I certainly didn't have to turn it back off when 2004 installed.

    EDIT: it's my own domain, and I didn't do anything to add GPOs or whatever to disable it. Perhaps the Samba 4.6 AD-DC thing puts them in by default, but somehow I doubt it.

    We set the registry values via a daily maintenance script just to make sure that it stays disabled.

    A bit belt-and-braces, but if you need it, you need it.



  • @El_Heffe said in WTF Bites:

    Dentist Seth Lookhart has been found guilty of fraud and unlawful dental acts and was sentenced to 12 years in prison this week.

    Unlawful dental acts??? :giggity:

    Probably means that he said he was going to do X and Y to your teeth, but did Z and W instead, especially for no good medical reason. Or maybe he did do what he said, X and Y, but there wasn't a medical reason for doing them. It's a form of fraud, related to the reputation of certain auto-repair shops for "diagnosing" problems that aren't there and over-charging to "fix" them.


  • Discourse touched me in a no-no place

    @Steve_The_Cynic said in WTF Bites:

    Probably means that he said he was going to do X and Y to your teeth, but did Z and W instead, especially for no good medical reason. Or maybe he did do what he said, X and Y, but there wasn't a medical reason for doing them. It's a form of fraud, related to the reputation of certain auto-repair shops for "diagnosing" problems that aren't there and over-charging to "fix" them.

    Or he wasn't qualified to be a dentist at all.



  • @dkf said in WTF Bites:

    @Steve_The_Cynic said in WTF Bites:

    Probably means that he said he was going to do X and Y to your teeth, but did Z and W instead, especially for no good medical reason. Or maybe he did do what he said, X and Y, but there wasn't a medical reason for doing them. It's a form of fraud, related to the reputation of certain auto-repair shops for "diagnosing" problems that aren't there and over-charging to "fix" them.

    Or he wasn't qualified to be a dentist at all.

    Indeed. Or qualified (from the point of view of having all the necessary training at suitably accredited schools, with diplomas to prove it), but having been "struck off" = barred by the dentists' professional body.


  • BINNED

    Someone wanted to go out of their way in spelling "naively" as "naïvely" and, presumably, was using some LATEX command for that without checking the result. The result was this:

    Bildschirmfoto 2020-09-20 um 14.40.12.png



  • Wow. Even heavy metal bands don't go that far.



  • @topspin Maybe it's just a compromise between a single dot and two dots because two of the authors couldn't agree which one is correct, and the third one was tired of their bikeshedding.



  • @Zecc said in WTF Bites:

    @Polygeekery said in WTF Bites:

    I had the bright idea to write a one line script that I could set to fire

    I for one am starting to get sick of all the pyromania jokes.

    Are you going to get fired up and do something about it?



  • @hungrier said in WTF Bites:

    @Zecc said in WTF Bites:

    @Polygeekery said in WTF Bites:

    I had the bright idea to write a one line script that I could set to fire

    I for one am starting to get sick of all the pyromania jokes.

    Are you going to get fired up and do something about it?

    It's probably more of a slow burn.



  • WTF of my day: Currently setting up an OnlyOffice server for testing. Since their Docker image does not work (which is kind of a :wtf: in itself), I used the "installation from package manager" instead.

    First :wtf: : I opted out of installing their mail server. I still had to remove the default postfix installation because their script simply checks if any of the ports a default install needs is in use.
    Second :wtf: : The script does not tell you which port it is complaining about - no, it simply plonks a list of 20 ports on you and tells you: "Oy, would you kindly check if those ports are not in use? I just found that one/any/all are in use but won't tell you which."
    Third :wtf: :The install is... using everything. It is currently installing:

    • Perl
    • Ruby
    • Python
    • Erlang
    • Mono
    • PHP
    • Java (to be exact: OpenJDK)
    • some Javascript engine
    • MySQL
    • PostgreSQL
    • SQLite
    • Redis

    No wonder they're demanding a powerful server for their installation.



  • @Rhywden You're installing the Tower of Babel? :wtf:



  • @Rhywden said in WTF Bites:

    their installation

    That sounds more like: 😱 🏃♂



  • @TimeBandit They've also thrown nginx, Node and RabbitMQ into the mix (not sure why they're installing Redis then).

    And, of course, their fallocate command failed somewhere in the end because they obviously never considered that someone might want to run the whole thing in an LXC. And they desperately need that 6 GB swap file.



  • @Rhywden said in WTF Bites:

    WTF of my day: Currently setting up an OnlyOffice server for testing. Since their Docker image does not work (which is kind of a :wtf: in itself), I used the "installation from package manager" instead.

    First :wtf: : I opted out of installing their mail server. I still had to remove the default postfix installation because their script simply checks if any of the ports a default install needs is in use.
    Second :wtf: : The script does not tell you which port it is complaining about - no, it simply plonks a list of 20 ports on you and tells you: "Oy, would you kindly check if those ports are not in use? I just found that one/any/all are in use but won't tell you which."
    Third :wtf: :The install is... using everything. It is currently installing:

    • Perl
    • Ruby
    • Python
    • Erlang
    • Mono
    • PHP
    • Java (to be exact: OpenJDK)
    • some Javascript engine
    • MySQL
    • PostgreSQL
    • SQLite
    • Redis

    No wonder they're demanding a powerful server for their installation.

    8 languages and 3 databases but just a single cache? Barely enterprise grade that!



  • @Carnage We actually want that (or something like that) because we have a Nextcloud instance for file sharing/hosting (which is also coupled to user owned directories so our pupils can access their files on- and off-premise) and we'd like for them to be able to edit documents directly in the browser merely by clicking on them.

    Nextcloud has an OnlyOffice plugin for that, so we thought we might have a look.

    I might just have a look at hosting an MS Office Online Server for editing documents if such shenanigans continue. We already have a Windows Server license which is currently not in use and also have both an Office 2016 Volume license as well as an Microsoft 365 subscription so we should be covered on that front if I interpret the docs correctly and not have to pay additional fees.



  • @Rhywden said in WTF Bites:

    I might just have a look at hosting an MS Office Online Server for editing documents if such shenanigans continue. We already have a Windows Server license which is currently not in use and also have both an Office 2016 Volume license as well as an Microsoft 365 subscription so we should be covered on that front if I interpret the docs correctly and not have to pay additional fees.

    Yeah, that pile of kitchen sinkery will cause a lot of problems in the future should you go with that.
    Looks like a line of people just hamfisted whatever they liked best into the project, so there's bound to be some utterly insane data flows, shims that break whenever they smell someone's fear and just... No.


  • BINNED

    @Zerosquare said in WTF Bites:

    Wow. Even heavy metal bands don't go that far.

    Yet.

    Hang on ... does any of you growl or grunt?




  • Discourse touched me in a no-no place

    @Rhywden said in WTF Bites:

    1. Perl
    2. Ruby
    3. Python
    4. Erlang
    5. Mono

    So… at least one of the .NET langs.

    1. PHP
    2. Java

    This might be any other JVM language. The differences aren't very observable from the outside, just as different .NET languages aren't too different from the outside either. (Different to use when programming in them, but if you've got a just build you want to install and run then you don't really care.)

    1. Javascript

    8 in one project. That's silly. Programming for that ecosystem must be like doing politics in the Balkans.

    MySQL
    PostgreSQL

    That's very very silly too. Yes, I can see having SQLite and Redis also there, as they've both got definite niches not covered by the other two, but MySQL and PostgreSQL are in a very similar part of application space. They're also both chunky services.

    But if they're using Ruby for Rails, then the DB stupidity is the least of the problems. That's been responsible for the heaviest application deployments I've ever seen. It's all because nobody using it really has a grip on what all the layers of caches inside it are really doing across all the processes involved, to the detriment of whatever memory you have left. I guess I could have filed a bug report on it… but :kneeling_warthog: and I don't like the Ruby ecosystem in the first place.


  • Notification Spam Recipient

    @Rhywden said in WTF Bites:

    Currently setting up an OnlyOffice server for testing.

    Yeah I personally gave up. It kinda-worked once and then... never really did ever. No idea why.



  • @Zecc said in WTF Bites:

    @Polygeekery said in WTF Bites:

    I had the bright idea to write a one line script that I could set to fire

    I for one am starting to get sick of all the pyromania jokes.

    Rise up gather round
    Rock this place to the ground
    Burn it up, let's go for broke
    Watch the night go up in smoke
    Rock on Rock on
    Drive me crazier, no serenade
    No fire brigade, just pyromania, come on

    https://www.azlyrics.com/lyrics/defleppard/rockofages.html

    Sorry.



  • @Rhywden said in WTF Bites:

    Since their Docker image does not work (which is kind of a in itself)

    Most of all, it is a massive :red_flag:. If they can't install the thing themselves, how are you expected to?

    @Rhywden said in WTF Bites:

    And, of course, their fallocate command failed somewhere in the end because they obviously never considered that someone might want to run the whole thing in an LXC. And they desperately need that 6 GB swap file.

    Well, Linux really, really needs swap:

    • there are always file maps, so demand-paging is always happening even with no swap attached and
    • there are always plenty of pages that are allocated anonymously, can't be reclaimed, but won't be used anytime soon

    so it's better to give it some swap to allow offloading these and have more room to juggle the code pages that are actually used often. And then there are of course tmpfs on /dev/shm and /run that appears to be your problem.



  • @Carnage said in WTF Bites:

    Mono

    Ok, found TRWTF:

    032b27ff-a6f8-4a39-972f-5e60a7256abe-image.png

    Is it (based on) what I think it is?


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    Well, Linux really, really needs swap

    All normal desktop OSes do, for rather similar reasons. Stuff that doesn't seem to be needed soon (so far as the OS can tell) gets moved to slower storage than main memory…


Log in to reply