Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poudriere stuck forever if call to usr/bin/limits return error message #1174

Open
4 tasks done
ocochard opened this issue Sep 27, 2024 · 3 comments
Open
4 tasks done
Labels

Comments

@ocochard
Copy link
Member

ocochard commented Sep 27, 2024

Prerequisites

  • Have you checked for an existing issue describing your problem?
  • Are you running the latest version?
  • Is your ports tree recent?
  • Is your FreeBSD Host on a supported release?

Describe the bug

Poudriere hang forever when call to /usr/bin/limits return error message

How to reproduce

Steps to reproduce the behavior:

  • host system need to be older than "3458bbd39778 - kernel: add RLIMIT_PIPEBUF"
  • jail need to be newer than "f54f41403d14 - usr.bin/limits: support RLIMIT_PIPEBUF".

Now start a clean build of any ports, it will hang forever at the first build (ports-mgmt/pkg) in starting phase.
Log of this port will show:

$ cat /usr/local/poudriere/data/logs/bulk/generator-default/2024-09-26_21h36m07s/logs/pkg-1.21.3.log
[00:00:00] =>> Building ports-mgmt/pkg
[00:00:00] limits: setrlimit pipebuf: Invalid argument

Commenting those lines in /usr/local/share/poudriere/common.sh is a quick workaround:

${JEXEC_LIMITS+/usr/bin/limits} \
 ${MAX_MEMORY_BYTES:+-v ${MAX_MEMORY_BYTES}} \
  ${MAX_FILES:+-n ${MAX_FILES}} \
@ocochard ocochard added the bug label Sep 27, 2024
@zackattackz
Copy link

I'm interested to investigate if no one else is busy taking a look :)

Is there any faster way to get a host vm image at 3458bbd39778 than just checking out that commit and building from source? It's a pretty slow build on my machine, wasn't sure if builds are stored anywhere I could just download?

@zackattackz
Copy link

Whoops I tried building 3458bbd to reproduce, but I missed the "need to be older than" part.

3458bbd doesn't build successfully anyways, so now I'm going to try to build 0ecbb28 "vm_map: add vm_map_find_locked(9)" which is the parent of 3458bbd.

May take another day to build though ;-;

@bdrewery
Copy link
Member

bdrewery commented Dec 9, 2024

It's semantics but this isn't a bug.

if [ ${JAIL_OSVERSION} -gt ${HOST_OSVERSION} ]; then
        echo
        echo
        echo
        echo "!!! Jail is newer than host. (Jail: ${JAIL_OSVERSION}, Host: ${HOST_OSVERSION}) !!!"
        echo "!!! This is not supported. !!!"
        echo "!!! Host kernel must be same or newer than jail. !!!"
        echo "!!! Expect build failures. !!!"
        echo
        echo
        echo
fi

I think it's reasonable to consider addressing the issue but there are countless more problems that can happen when the jail is newer than the kernel.

About the issue, it would be quite surprising if a limit was ignored? So what would the right fix be here? I don't think this is fixable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants