serpent-os / boulder-d-legacy

Replaced by Rust tooling
https://serpentos.com
21 stars 7 forks source link

git: Fails if switching to ref that didn't exist previously #59

Closed ReillyBrogan closed 1 year ago

ReillyBrogan commented 1 year ago

This is kind of an annoying issue to reproduce:

  1. Build any package with a git upstream (such as glibc)
  2. Wait for the upstream to add additional commits/refs (for instance let's say they add additional commits to the release/2.37/master branch)
  3. Change the git ref in stone.yml to one that didn't exist on the previous build (for instance the commit that is the new HEAD for release/2.37/master)

And you will get the following output:

sudo boulder bi stone.yml -p local-x86_64
[10:15:29] INFO      Stage success: clean-root
[10:15:29] INFO      Stage success: create-root
remote: Enumerating objects: 675, done.
remote: Counting objects: 100% (551/551), done.
remote: Compressing objects: 100% (126/126), done.
remote: Total 226 (delta 186), reused 107 (delta 87), pack-reused 0
Receiving objects: 100% (226/226), 35.58 KiB | 35.58 MiB/s, done.
Resolving deltas: 100% (186/186), completed with 91 local objects.
From https://sourceware.org/git/glibc
   cc4d6614b5..8b014a1b1f  master              -> master
   2d7550e6cf..16c6a89c17  release/2.34/master -> release/2.34/master
   757d9a6306..3f63f9dfe1  release/2.35/master -> release/2.35/master
   172f72e45e..fb1bd9f003  release/2.36/master -> release/2.36/master
   d8e1a7590d..590d0e089b  release/2.37/master -> release/2.37/master
fatal: Could not parse object '590d0e089b06f158ded713f5e5600eaa66dcea44'.
[10:15:30] ERROR     Exception: Failed to reset to requested git ref 590d0e089b06f158ded713f5e5600eaa66dcea44
[10:15:30] ERROR     Stage failure: fetch-upstreams

I didn't test to see if this error was persistent on future runs of boulder. Also, something in this is lacking an error/exception handler. Boulder just freezes at this point after printing the error requiring ctrl+c to exit (which is obviously not good for the automated build case).