Linux AER errors on NVME – ACPI Platform Error Interface (APEI)

I’ve recently experienced a number of errors in my proxmox server related to the NVME drives.

{1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 514
{1}[Hardware Error]: It has been corrected by h/w and requires no further action
{1}[Hardware Error]: event severity: corrected
{1}[Hardware Error]:  Error 0, type: corrected
{1}[Hardware Error]:  fru_text: PcieError
{1}[Hardware Error]:   section_type: PCIe error
{1}[Hardware Error]:   port_type: 0, PCIe end point
{1}[Hardware Error]:   version: 0.2
{1}[Hardware Error]:   command: 0x0406, status: 0x0010
{1}[Hardware Error]:   device_id: 0000:a1:00.0
{1}[Hardware Error]:   slot: 0
{1}[Hardware Error]:   secondary_bus: 0x00
{1}[Hardware Error]:   vendor_id: 0x2646, device_id: 0x5013
{1}[Hardware Error]:   class_code: 010802
{1}[Hardware Error]:   bridge: secondary_status: 0x0000, control: 0x0000
nvme 0000:a1:00.0: AER: aer_status: 0x00002001, aer_mask: 0x00000000
nvme 0000:a1:00.0:    [ 0] RxErr                  (First)
nvme 0000:a1:00.0:    [13] NonFatalErr           
nvme 0000:a1:00.0: AER: aer_layer=Physical Layer, aer_agent=Receiver ID

After looking into this. I’ve found a series of articles and posts about this issue:

and sadly none of these posts seem to have a solid answer…. and even worse, most replies are just telling people to silence the errors, or even disabling the error recovery features entirely (Absolutely bonkers).

Follow up

For my server, I’ve found this issue is almost entirely related to the NVME drives overheating.. I’ve installed some thin heatsinks, and the issue has almost completely resolved itself.

I cannot confirm if this is true for the others… but I’ve got a feeling it’s the root cause for my server considering how hot these NVME storage devices are getting on GEN 4 / GEN 5.

Welcome to techno hell. Everything needs a heatsink now.

PCIe 4.0 vs. PCIe 3.0 SSDs Benchmarked | TechSpot

Mastodon 4.2.0 – Post Toots Every Day

<OverlyDramaticIntro> Hello Mastodon enthusiasts, after seven months of relentless innovation and extensive development, the eagerly awaited Mastodon 4.2.0 update has been released. Mastodon continues to set itself apart from the mainstream platforms with a focus on privacy and user safety. This update stands as a testament to the teams dedication to enhancing user interactions in the fediverse while limiting toxic behaviour from damaging our little ecosystem.</OverlyDramaticIntro>

*cough* On the surface, everything looks and feels mostly the same, with the developers working to polish the harsh edges. As you continue to toot and scroll, you’ll notice wonderful little improvements and quality-of-life tweaks.

A lot of the frameworks/dependencies were running outdated versions, so this release cycle the dev team spent most of their precious time upgrading to modern versions (as noted below), writing tests, and refactoring the code base – while still keeping the wheels on – resulting in a modern ecosystem more welcoming to new developers. Finally, this focus on maintenance has delayed the shiny cool new features (Search, Quote toots, Markdown, Groups, Encrypted/Real DMs, etc.)

Update: Opt-In Full Text Search landed in 4.2.0-beta 3!

Bonus fact: 11% of total commits ever were merged between 4.1.0 and 4.2.0

Update: Official blog https://blog.joinmastodon.org/2023/09/mastodon-4.2/

Upgraded Frameworks & Admin notes

  • Upgraded from Ruby on Rails 6.1 to 7.0
  • Upgraded from React 16 to 18
  • Migrated large chunks of Javascript to Typescript
  • Minimal Ruby version is now 3.0+ (3.1/3.2 is supported)
  • Minimal NodeJS version is 16+ (18/20 is supported)
  • Minimal Postgres is now 10+ (Upgrade to 14+ if you’re able)
  • Nodejs Streaming server may require modification.

People-Focused

The following is a list of quality of life improvements, and jank removal:

  • “Privacy and reach” tab in profile settings
    https://github.com/mastodon/mastodon/pull/26484
    A major UX redesign focused on enhancing personal privacy. This enables people to limit/increase the reach of their account, and control the different methods their toots can be discovered.

    The design of this form is – the more you tick, the more public (searchable/discoverable) your account becomes, and the more you untick, the more private (unsearchable/undiscoverable) your account becomes.

    This places the visibility of your account and your toots in your hands, and under your control.

  • Search Part 1: Recent Searches are now saved (and can be removed)
    https://github.com/mastodon/mastodon/pull/26834
    “Previously, recent searches were not persisted between page reloads. Now, it will remember all types of searches and save them to local storage just like recently used hashtags.”

  • Search Part 2: Opt-In for Full Text Search
    In the “Privacy and Reach” tab mentioned above, pay special attention to the “include public posts in search results” button. This will update your account with the new “indexable” flag, and this flag will federate around to notify all of the instances in the fediverse that you consent to those instances making your toots (and toots alt text) fully searchable.

    This flag is disabled by default, and if you wish to maintain your current privacy level, and deny full text search of your account (on instances which support the limitation) just leave this box unticked.



    Note: Posting a toot with unlisted status will opt-out of the full text search for THAT toot in particular! This offers you the ability to post both indexed searchable toots, and private unindexed/unsearchable toots on the same account.

  • Search Part 3: Conditional Search Options
    You will be able to search for people using from:@shlee@aus.social etc.
    but you’ll also be able to use conditional options to search for all photos posted between june 2021 and june 2022 by @dasharez0ne.


    Bonus:

  • Redesigned Hashtag (includes hidden hashtags)
    https://github.com/mastodon/mastodon/pull/26492
    https://github.com/mastodon/mastodon/pull/26499
    1) Unique hashtags that are listed on the last line of the toot will be moved to the dedicated part of the toot.
    2) ActivityPub supports “out of band” hashtags which were previously invisible to people. These hidden OOB hashtags are now visible which helps people who follow hashtags have extra insight into why they’re appearing on the timeline.

    Before

    After
    Notice the hashtags are moved to the bottom.

  • Add ability to include accounts with pending follow requests in lists
    allowing accounts in lists as soon as they have a follow request, but not distributing posts to the list before the follow request is accepted.

  • Change video bitrate to always fit within size limit
    https://github.com/mastodon/mastodon/pull/26970
    “We calculate the “perfect” bitrate, but also the bitrate that would result in reaching exactly the size limit, and take the lowest one.”

  • Add support for incoming rich text
    Only incoming rich text from the fediverse that supports fancy text is support for now…. but this shows that hopefully markdown is coming to Mastodon in the future.

    image

  • Reports can be forwarded to multiple instances
    (for toots mentioning multiple people)

  • Add lines to threads in web UI
    This adds connecting lines between replies to the thread view, and will improve hopefully readability.
  • Add progress indicator to sign-up flow
    “An upfront overview of how many steps there are in the sign-up flow.”

  • Add new onboarding flow to web UI
    New accounts on Mastodon will be greeted with a newer welcome experience.

  • Add onboarding prompt when home feed too slow
    If the feed isn’t moving quickly, Mastodon will display a dismissible banner that points to trends and follow recommendations.

  • Add support for importing lists
    This introduces the ability to import lists as exported by Mastodon since v2.8.

  • Delay added to “resend confirmation button” during account signup.
    It is what it is.

  • A “Toast” prompt will pop up after posting a toot
    this is for confirmation on new toots, or edited toots.

  • Add legal as report category
    “It doesn’t make sense to have all server operators have a custom “Don’t break the law” rule when it’s really universal.”

  • Add “In Memoriam” banner back to profiles
    This is another feature that was removed in previous versions.

  • Add client-side validation for taken username in sign-up form
    This is useful for people trying to grab popular or common usernames.

  • Add button to see results for polls
    Notice the “See results” text next to vote. This is another quality of life change, and removes the need for pointless “just show the result” poll answers.
  • Add unsubscribe link to e-mails
    The link does not require to be logged in to work.

  • Add time zone preference
    Allow users to save a time zone preference which affects how dates and times are rendered in e-mails.

  • Show who invited you to join from an invite
    More quality of life changes

  • Add ALT badges to media that has alternative text
  • Fix missing GIF badge in account gallery

  • Change Boosts/reblogs to be excluded from “Posts and replies” tab
    this is a change to focus on showing only user’s original toots.

  • Improve UX for interacting with other instances
    The experience of trying to boost a toot when visiting a profile on another instance has always been janky. This change is a little nicer, but needs to be seen to be fully understood.

  • Change “direct message” nomenclature to “private mention”
    This change is minor, but important.. because there are not DMs in Mastodon (Yet)… Pixelfed Dansup is making an app called Sup dedicated to direct messages (with encryption).

  • Fix filters not being applying in the explore page
    This is another quality of life fix.

New Admin features

  • Administrator alerts for updated release.
    https://github.com/mastodon/mastodon/pull/26582

  • Webhook templating
    https://github.com/mastodon/mastodon/pull/23289
    “Remove the need to run intermediary servers that transform JSON for other platforms like Slack or Discord by allowing customization of the JSON payload using variable interpolation”

  • Add a confirmation screen when suspending a domain
    Gives a summary of the impact of the specific suspension on the instance. This is important when moderation teams are considering suspending an instance, but were not aware it would break X relationships.

  • Add Extra webhooks
    status.created, status.updated, account.updated and report.updated

  • Add ability to block sign-ups from IP using the CLI

  • Remove anonymous access to the streaming API
    https://github.com/mastodon/mastodon/pull/23989
    This change tightens security and privacy against bots and services scraping instances feeds, but not all of those services were bad actors with a popular hashtag relay service (relay.fedi.buzz) needing to be redesigned to accommodate this breaking change.

Investigating NVME LBA sizes and formatting for performance

I grabbed 4 1TB Kingston KC3000 NVME disks, and as I plan on using them in a proxmox server. I’ve investigated their LBA (Logical block addressing) format support to gain better performance by using the larger native block size.

Bonus fact: Some NVME drives also have LBA formats that support on-disk metadata, and this can be bypassed for ZFS or similar filesystems that maintain metadata.

Prerequisite

Install nvme cli for debian/ubuntu (Optional)

apt install nvme-cli

nvme-cli (with human readable output)

nvme id-ns -H /dev/nvme0n1

The LBA part is the important part for now.

Notice: There are 2 LAB Formats (512 and 4096). 512 is the current in use format, but 4096 is marked as giving better relative performance.

smartctl (with all information)

smartctl -a /dev/nvme0

Again, the support LBA size is the important part.

Format the NVME disk to use a different LBA

nvme format --lbaf=1 /dev/nvme0n1

After that. test the result from the previous

Additional Resources

https://wiki.archlinux.org/title/Advanced_Format

TPM 2.0 Firmware Upgrade

I’ve recently started building a 2U rack server, and went to install the 20pin TPM that I had spare. While the unit worked fine, I noticed the firmware was the original/oldest possible firmware version.


Finding the latest firmware releases

The Trusted Computing Group has a list of verified firmware releases for all of the known TPM chips.

For example, my chip is a Infineon, SLB 9665, and that show’s the latest firmware is 5.63


Infineon OPTIGA™ SLB 9665 TPM2.0

Data Sheet: https://www.infineon.com/dgdl/Infineon-data-sheet-SLB9665_2.0_Rev1.2-DS-v01_02-EN.pdf?fileId=5546d462689a790c016929d1d3054feb

I was able to find both 5.62.3126.2 / 5.63.3353.0, but the upgrade path from 5.0.1089.2 is not perfect. As my firmware ends in .2 and the latest upgrade supports `.0` and I have no idea if that’s a problem.

TPM20_5.0.1089.2_to_TPM20_5.62.3126.2.BIN then in theory TPM20_5.62.3126.0_to_TPM20_5.63.3353.0.BIN?


Firmware Bundle

Infineon TPM Firmware Update Tools release version is 01.01.2481.00.
TPMFactoryUpd in this release is version 01.01.2212.00.
IFXTPMUpdate.efi in this release is version 01.01.2212.00.
TVicPort.sys in this release is version 4.0.

This file contains what I believe is the (unmodified) Infineon TPM Firmware Update Tools, but I cannot give any guarantee for this. (I’ve added additional firmware to this 7z).

If you have a more recent version of this package, please forward it to me.


Updating the SLB 9665

Part 1: Error 0xE0295507

I tried to patch the TPM unit I had from the oldest firmware to the latest, and kept hitting this platformAuth is not the Empty Buffer error.

This seems to be because the TPM (even after it’s been cleared) has been accessed by the computer you’ve attached it too, and you seem to have to clear and then flash the TPM chip before the BIOS/Kernel/OS gets’ it’s grubby little fingers into it…

There is a forum post about people disabling the TPM in the BIOS before they can flash, but this didn’t help me using the SuperMicro server motherboard, as it just makes the TPMFactoryUpd tool fail with a missing TPM error.

Untested: I’ve heard Windows has a powershell Disable-TpmAutoProvisioning to stop windows from activating any TPM it sees. (I have no idea if that works to resolve the issue above).

Part 2: Success

<TO BE CONTINUED>


References

Adjacent notes

Wild Instance Abandon (Part 1)

At the time of writing, there are two Mastodon instances called mstdn.party and mstdn.plus, run by the same person… There are currently over 15 thousand active accounts shared between the two, and the instance appears to have been abandoned.

I have tried to contact the administrator, as several other instance admins have offered to take over if necessary, but I have yet to hear back.

This is not an original story, and it will happen again and again as instance admins find themselves with a heavy mental, financial, operational (and moderation) burden.

The pattern goes like this: Thousands of happy little instance admins register a snappy domain, fire up a VM on a cloud provider and install their own Mastodon instance. They share the Mastodon instance with their friends and other communities, people start signing up, and over time as Twitter continues its decline. The admins find themselves with more and more users joining their instances.

They take pride and personal pleasure in the success of the Mastodon project as a whole, and accept that the success of their own instances requires them to devote more and more of themselves to keeping the instance stable and secure. More servers, more money, more time, more mental energy, more burnout.

You may start a Patreon to cover these costs and hopefully break even.

The first thing that happens as the instance grows is the technical problems of scaling. VMs require additional compute, additional storage, and additional services like CDNs. All of these resources need to be monitored, patched and upgraded.

Hopefully you’ve done your backups. Email providers can block you, S3 buckets can go down, and software can have bugs. Unexpected outages are stressful, and any technical problems are your responsibility, regardless of the cause.

The second thing that happens as the instance grows is moderation scaling issues. More and more reports will come in, and how quickly you respond to them will depend on your personal political ideology.

You may start to find volunteer moderators, and hopefully they get along…and hopefully you agree with their decisions.

The third thing that happens as the instance grows is community problems. There are bad actors roaming around, running other bad instances full of people with no good intentions, and so you start trying to block, silence and secure your instance against these bad actors.

Maybe you don’t see the worst of these bad actors, and the negative mental energy is something you can handle.

On top of that, you find yourself dealing with general technical support. Password resets, MFA resets… sometimes you find bugs, and sometimes it’s a false alarm that’s just wasting time.

And so on and so on. The problems never stop… but at least hopefully you’ve got thousands and thousands of people who find value in your instance, and while you’re just one of tens of thousands of other admins – you feel isolated and alone, because you don’t share the responsibility – we’re all in this together, but you’re the only admin of your instance.

(There are a few co-op servers with multiple admins, and I’m very impressed).

What happens if an instance admin cannot handle the pressure?

Mastodon as Reference Design

The official “Mastodon” is a bundle of reference designs – The reference Web FrontEnd (WebFE), a reference BackEnd (MastoBE), and a pair of reference mobile apps (iOS/Android) – All third-party clients, forks, clones, and Mastodon-compatible “ActivityPub” servers (including Cloudflare’s Wildebeest) are all based on the core teams approved concepts, designs, limitations and APIs.


Context: The status quo for 99% of the mainstream social networks is for its ‘users’ to access their accounts directly via the approved front doors – using official means – into dedicated spaces controlled and regulated by the social network. Most social networks remove all autonomy from their users and regularly refresh the UX regardless of the wishes of their users.

As a response to this, I’d like to see Mastodon embrace allowing people to change from the reference WebFE as easily as changing from light/dark mode. This would truly make the reference WebFE less of the default, and more of an option.

This could start with enabling theming (as supported by Glitch), or adding toggles to enable preview features such as Quote toots to A/B test, and end with allowing instance administrators to upload full FE replacements for them to tweak as suits them.

This freedom of choice is well understood by people accessing their Mastodon instance from their phones. Every month comes a new iOS client with a slightly different take on UI/UX design.

I foresee a future where features are nurtured and evolve in these third-party clients and after gaining enough traction can be bought back upstream into the reference (as an official feature).

and the Mastodon developer team should find no shame if Mastodon reaches a point where fewer and fewer people use the official WebFE and mobile apps, and see it as a badge of honour because it means the ecosystem around community development is thriving.


The official reference WebFE doesn’t really allow for any kind of customisation out of the box, and I’d like to see a future where every part of the WebFE can be tweaked to create unique instance theming allowing all features to be fully customisable – Custom Assets, Colours, Fonts, Icons, Sizes, etc – Mastodon’s reference WebFE design should become a CSS Zen garden, but in reality, I foresee this kind of unique personal and community focused environments being driven by community developed WebFEs.

As I write this there are multiple replacement community WebFEs (Perfectly compatible but unofficial clients) in development. Elk is the current best example of a user-centric replacement for the reference WebFE, and is very suitable for those coming over directly from Twitter.

Eventually, I’d imagine with similar interest that community members might work to replace the Ruby-based Mastodon Backend as well, and the Mastodon – as we know it – will slowly mirror the “ship of Theseus”, and change piece by piece while still remaining just similar enough to keep the toots rolling.


There is a long history of clients growing so large that their users shape and influence the product itself regardless of the original team’s intent.


Finally

My request to the Mastodon core developers is to enable a culture of growth and playfulness by continuing to enhance the openness of your platform, but also adding the ability for Mastodon instances to run custom enhancement modules (similar to plugins).

I’d personally love to see complex markdown standard for my instances toots, as others would like quote toots…. being able to code these features as a plugin outside of the core mastodon is a step towards innovation without having to force people to create (and maintain) forks for single features – as a playground – before they get merged into the core mastodon repo.

“It’s all capitalism’s fault” Mastodon Interview Questions 2022

The following are the answers I gave to a journalist during the second or third major burst of members coming from Twitter.

Obviously, the journalist only took one sentence and didn’t capture my mood.


1: How many people have joined Mastodon in Australia since Elon Musk’s takeover of Twitter? Do you have figures or rough estimates/percentages? International figures?

Globally Mastodon saw an uptick of around 1 million people joining in the last month. https://fediverse.observer/stats

My instance saw more than 12,000 people joining over the last weekend, and this only slowed down due to closing signups because my servers could not handle the flood of people. I plan on opening up again soon, and there have been other Australian instances opening recently to share the load. We’re more than able to support hundreds of thousands of people on my instance now if we see another flood of people leaving Twitter.


2: Were you prepared for the sort of interest your site is now getting and are changes being made to accommodate ex-Twitter users?

a) Aus.Social has been around for 3+ years, and we’re slowly been growing from word of mouth during that period. I expected to see growth over time but not for the thousands of signups over a 48-hour period. From both a technical and a moderation perspective. Our volunteer staff had problems dealing with the increased time and mental stress of users’ reports.

As the administrator, I was able to handle the technical side, but I’m currently working on building the policies and political side to be able to maintain a safe environment.

A lot of people flooded to Mastodon instances that were unable to handle the load had a negative experience and left… hopefully they try again now that administrators have had time to prepare to handle the waves of people.

b) Twitter and Mastodon share a lot in common which makes Twitter users quickly adapt, but there are a lot of differences that cause some confusion. Twitter is a machine built for user engagement, and Mastodon is built with a slightly more personal direction. For example, there is no search function. You cannot search for “Melbourne coffee” and find local or like-minded people to follow. This is to stop people from discovering people who they disagree with and start a fight. This choice is good for building a safer culture but makes discoverability harder.

Mastodon is slowly planning to roll out features that will hopefully resolve these problems and make the hardcore Twitter users happier on the platform, but these changes will take time.


3: Why are people seeing Mastodon as an alternative to Twitter and how is it different/better? What will new users notice?

Mastodon is best compared to Twitter by talking about what it’s missing. Mastodon has no ads, no tracking, no algorithms or aggressive pushes for negative engagement. The feed is in real-time and honest, it doesn’t push topics or trends. It encourages the use of “content warnings” to allow people to choose the content they see, and filters allow people to restrict content they dislike.

Mastodon’s developers have an aim to make an alternative to Twitter by taking the best parts and hopefully slowly changing over time. I can imagine Mastodon changing faster than Twitter has over the next few years.

Because of this increased interest, the main developers are hopefully going to listen to the community and drive innovation based on the needs and wants of the users, instead of the needs of the shareholders. Community-driven vs profit-driven development is not something that people are used to in social networks.


4: Will you be seeking out ex-Twitter staff?

I haven’t spoken to any Twitter staff, but they are all free to join the Fediverse. Mastodon is free and open source, and any of them can make an instance, or join the development team to share their insights.


5: With the turmoil at Twitter and Meta laying off thousands of workers too, are we seeing the end of the mass-use social media era, at least as we’ve known it over the last 15 years? What do you think social media will look like in the future?

The dot net booms are no new to the tech economy, but I’ve always stressed the classic “if you’re not paying for the product, you are the product” line. Twitter/Meta are publically listed companies with shareholders who demands infinite growth and ever-increasing returns for their investment. There is a preserve incentive for those social media companies to drive their user bases up and have entire teams of people dedicated to tricking people into using their products. Mastodon will hopefully never sell any users’ data. There will hopefully not be advertisers which need to be kept happy.

I hope to see a future where all of the positive parts of social media can exist but without the profit motive. I have a patreon that is currently sitting at more than my operating costs and this will enable to me

We’re building new community infrastructure. I need to maintain the instance for my users, but we also need to work to keep the instances moderated. We need to make them safe for my users. The best part of having thousands of different instances is you can choose the style of moderation that fits your needs.

There are a lot of technical people who think they can solve social problems with technology, but in reality, we need the people who use these services to nurture a safe culture that gives them the ability to be creative and hopefully get something positive out of these new online social services.


6: Can you give a brief description of Mastodon and how it works, its structure and how it’s different to Twitter?

Mastodon is part of something called the Fediverse, which is powered by “ActivityPub”. This is a free and open-source concept that enables anybody to make a social network and have it communicate openly with others. This will enable people to build a replacement Instagram, and people can like and comment on their friend’s “Fediverse Instagram” photos from inside mastodon.

This kind of cross-product integration doesn’t exist today. Twitter doesn’t talk to Instagram, and Instagram doesn’t talk to Reddit. This is the point and future of Mastodon and the Fediverse.

© 2024 Shlee

Theme by Anders NorenUp ↑