Signing problem with the latest rawhide kernels #13279
Labels
No labels
announcement
anubis
authentication
aws
backlog
blocked
bodhi
ci
cloud
communishift
copr
database
day-to-day
dc-move
deprecated
dev
discourse
dns
downloads
easyfix
epel
firmitas
forgejo_migration
Gain
High
Gain
Low
Gain
Medium
gitlab
greenwave
hardware
help wanted
high-trouble
koji
koschei
lists
low-trouble
medium-trouble
mirrorlists
monitoring
Needs investigation
odcs
OpenShift
ops
outage
packager_workflow_blocker
pagure
permissions
Priority
Needs Review
Priority
Next Meeting
Priority
🔥 URGENT 🔥
Priority
Waiting on Assignee
Priority
Waiting on External
Priority
Waiting on Reporter
rabbitmq
release-monitoring
releng
request-for-resources
s390x
security
SMTP
sprint-0
sprint-1
src.fp.o
staging
unfreeze
waiverdb
websites-general
wiki
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
Priority
High
Priority
Low
Priority
Medium
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
6 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
infra/tickets#13279
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description of request
The latest rawhide kernel build failed when signing the kernel for Secure Boot: https://koji.fedoraproject.org/koji/taskinfo?taskID=144635563
Something went wrong on the host side with the sigul-pesign-bridge service. Can someone pull the logs for both the aarch64 and x86_64 builders?
A few thoughts on things to check: infra/ansible#3267 changed how the ACLs got applied to the service. Did sigul-pesign-bridge.service restart and the ACLs failed to apply properly?
Otherwise the logging should cover what went wrong. It is supposed to retry requests for a day but it returned a failure very quickly so it may be it's treating an error as fatal when it should be retrying.
The permissions look fine on the host. That PR, and the ones before it, got enough double checks I'd assume it isn't the cause anymore. I think this is the relevant bit from the logs:
Let me know if you need/want more info. ... going to leave this open for a bit.
Okay, so the bridge should be retrying this case instead of stopping, but also something seems weird from the sigul side.
It's returning
UNKNOWN_ERRORwhich unfortunately it uses for lots of things. If it failed in the pesign function there should be an error level log on the signing server that says"pesign command timed out"or"Command failed: %s returned %d (stderr=%s, stdout=%s)"with (hopefully) details on what went wrong.I've filed https://bodhi.fedoraproject.org/updates/FEDORA-2026-8fe66d85c2 which changes the bridge behavior to always retry failed requests, even if sigul returns an error code. I think that makes the most sense since if sigul is in a weird state admins can poke it and the build will continue.
If you can't see anything in the sigul server logs we can just retry the kernel build, I suppose, and it might proceed. The shim rebuild also failed so I do suspect something is up with the sigul server: https://kojipkgs.fedoraproject.org//work/tasks/2489/144642489/build.log
We are trying to find out who can see the server side logs atm.
Normally Kevin would look, and I assume there's at least one more person who can access them ... but you need more than sysadmin-main to do it, and neither I nor Adam know who else is on the list atm.
Okay, I have access to the server logs now and messages is a lot of this repeated:
...I assume this means we need to restart sigul, however I don't have that passwd so it'll have to wait a bit longer until one of those people wake up and/or see their messages.
I restarted sigul and the signing seems to work as it should, but the errors in
pcscddidn't go away. But looking at the logs ofpcsdthis is probably normal.But I found this error in sigul logs:
To me it seems that key
fedora-signerisn't where we expect it.@zlopez wrote in #13279 (comment):
Okay. So the only thing that signs with keys inside that hardware token are packages sent to the secure boot channel (kernel, grub, shim, etc) so I would expect signing to continue working for other things even if this was broken.
That message at the end indicates that the token (e.g. the hardware) is not there, which is not expected. It's unclear to me if restarting pcscd is enough to "reset the card" without doing some digging into the code, or if the card needs a power cycle.
The following should list a token with the label "fedora-signer":
I suspect it currently won't. You could try restarting pcscd and then running it again to see if it picks up the token. If that doesn't work, I don't have an idea beyond a reboot to power cycle the card.
On Fedora it looks like pcscd is run via a systemd socket with an option to auto exit after inactivity so I'm not sure that restarting it will do anything to solve this, but it seems worth a try.
We found out that this is probably caused by issue with the USB card reader, which contains the key. There is a ticket open for DC folks to unplug and re-plug the card again as the reboot of the machine didn't help.
Okay, I think this should be working again now.
Appreciate it. Kicked off rawhide kernel builds and we will see how it goes.
@jcline the DC folk have done the needful and @james has restarted sigul - can you retry a build?
Signing has failed again
What I know:
I'm pretty sure that I was tired initially and only looked at the sigul_server.log, saw that it was signing packages and decided it might be fixed even though it was doing that fine all the time.
I think there should be USB notifications in dmesg saying it was unplugged and plugged back in, and I don't see those. So maybe the DC did sign-vault02 instead?
Kevin said that we could/should ping pjones, and we should be able to move the USB token from
sign-vault02tosign-vault01as the USB readers/cards should be identical. Obviously don't want to try that unless nothing else works.Worth noting some extra things for anyone else looking at this:
I checked with DC-ops and they unplugged/replugged the devices again, and this time I saw it in dmesg, so it was the right machine. However, still no dice:
while 02 lists that and the yubikeys. Since a reboot and a replug haven't helped, I'll ask DC-ops to swap the devices between 01 and 02 and we'll see if that helps.
Okay, what we did/know:
SafeNet eToken 5100in both vault01/vault02 which isn't the yubikeys (Greg shows that above).Okay, so:
SafeNet eToken 5100is wherefedora-signeris stored@pjones wrote in #13279 (comment):
According to
pkcs11-tool --list-objectstheSafeNet eToken 5100device had no objects in it. I expected it to have public keys and certs visible without providing--login. For soft tokens and Yubikeys I've used it works that way:Do you happen to remember if the token behaves like that, or is it marking all objects as private?
@jcline wrote in #13279 (comment):
I don't recall, but I don't think I've ever observed any consistency with these devices or tools.
This is solved now: https://koji.fedoraproject.org/koji/taskinfo?taskID=144715871