pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fix pkg_install on macOS Monterey

On 11/3/21 8:23 PM, Jason Bacon wrote:
On 11/3/21 05:49, Jonathan Perkin wrote:
So, Apple's crappy virtual memory system strikes again, and the problem we're running into is that the +INSTALL and +DEINSTALL scripts executed during upgrade of pkg_install fail because they're using fork() when the original file system image of pkg_add and pkg_delete are either missing or changed, as we're in the process of replacing them.

At least that's the best theory I'm working on right now, given the inability to do any proper debugging on this OS, and goes some way to explain why it's an intermittent failure.

I have a diff to switch the calls of these script to use system() instead:

and have verified that this "fixes" the issue in my limited testing, but I'm expecting some objections to this change (I don't like it either).

To those of you who object, please come up with some alternative solutions.  The only ones I can think of are really really bad.


I think I hit this error as well.  I manually worked around it by extracting pkg_add from from packages/All/pkg_install*.tgz and then using it to reinstall the same tgz.  Didn't get around to investigating the cause.

I like the posix_spawn() solution. I see that it has been added conditionally. If we're still supporting platforms that don't have posix_spawn(), I wonder if just replacing vfork() (fast but dangerous) with fork() (slower but portable) would be fine. I suspect the overhead saved by vfork() is miniscule compared to other tasks performed by pkg_install, but I could be overlooking something.

Home | Main Index | Thread Index | Old Index