Hi Josh,

I've made some progress in understanding the cause of the hang ups I have been having. Its related to the use of a new feature in recent git versions

https://github.blog/2022-06-27-highlights-from-git-2-37/#a-builtin-filesystem-monitor-for-windows-and-macos

I enabled this feature a while back

> git config core.fsmonitor true

and forgot about it.

With macports 2.7.x I had no problems, but with 2.8.x I get the hangup immediately after the `git pull` step run by e.g. 'port -d sync'

If, during this hangup, I check the processes running I see this one

67138 s010 S+ 0:00.01 /opt/local/libexec/git-core/git fsmonitor--daemon run --detach --ipc-threads=8

and indeed if I manually kill that process the port sync command continues.

So... A simple reproducer for the issue is the following

1. Configure your macports installation to use a git clone of the ports tree in your personal user area, instead of the default tarball approach. In my case this is under /Users/chris/Projects/MacPorts/ports.

2. Install macports git

  > sudo port install git

3. Enable the fs monitor for the ports tree checkout you made in 1.

  > cd /Users/chris/Projects/MacPorts/ports
  > git config core.fsmonitor true

3. run 'port -d sync'

Hopefully then you should see the command hang up

Oberon ~/Projects/MacPorts/ports > sudo port -d sync
DEBUG: Copying /Users/chris/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences
--->  Updating the ports tree
Synchronizing local ports tree from file:///Users/chris/Projects/MacPorts/ports
DEBUG: euid/egid changed to: 501/20, env: HOME=/Users/chris
DEBUG: /opt/local/bin/git pull --rebase --autostash
DEBUG: system -W /Users/chris/Projects/MacPorts/ports: /opt/local/bin/git pull --rebase --autostash
Already up to date.
<hangup>

Of course, the simple work around is to just disable this git feature

> git config core.fsmonitor false

But I think we should figure out why its interacting badly with macports 2.8.x ?

cheers Chris

On 20/10/2022 10:49 am, Christopher Jones wrote:
Hi,

I’m afraid I have no idea how to go about setting up a reproducer for this. It 
seems it randomly comes and goes, so perhaps is related to something else going 
on in the system (I am on macOS12 intel b.t.w.).

The best I can do is monitor it and see if I can spot any pattern as to when it 
happens or not. I am now on the official 2.8.0 release and still see it happen, 
so lets also see if any others start to see the same or not.

Chris

On 19 Oct 2022, at 2:07 am, Joshua Root <j...@macports.org> wrote:

I can't repro this. The VCS sync logic hasn't changed since the privilege 
dropping fix in April. The only thing I can think of that might have made a 
difference is the update to Tcl 8.6 and the associated update of all the 
try/catch blocks.

All that should be happening between running git and running portindex is the 
environment restore in VCSCleanup. You might have to do some more digging to 
figure out a repro recipe I'm afraid.

- Josh

On 2022-10-18 20:09 , Christopher Jones wrote:
Hi,
I’m not running the beta but the current master branch of base, but I guess its 
similar.
I’m noticing with the latest version  `sudo port sync` just hangs up after 
updating my local git clone. e.g.
Oberon ~/Projects/MacPorts/ports > sudo port -d sync
DEBUG: Copying /Users/chris/Library/Preferences/com.apple.dt.Xcode.plist to 
/opt/local/var/macports/home/Library/Preferences
--->  Updating the ports tree
Synchronizing local ports tree from file:///Users/chris/Projects/MacPorts/ports
DEBUG: euid/egid changed to: 501/20, env: HOME=/Users/chris 
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.vx1uKV7YtR/Listeners
DEBUG: /opt/local/bin/git pull --rebase --autostash
DEBUG: system -W /Users/chris/Projects/MacPorts/ports: /opt/local/bin/git pull 
--rebase --autostash
Already up to date.
and thats it, it never gets any further and just hangs up there.
If I contrl-c the process I can get it to continue.
^CDEBUG: euid/egid restored to: 0/0, env restored
DEBUG: system: /opt/local/bin/portindex /Users/chris/Projects/MacPorts/ports
Creating port index in /Users/chris/Projects/MacPorts/ports
Total number of ports parsed:   0
Ports successfully parsed:      0
Ports failed:                   0
Up-to-date ports skipped:       29934
any ideas what step its hanging up on ?
Chris
On 14 Oct 2022, at 12:57 am, Joshua Root <j...@macports.org> wrote:

Well, only one issue has been reported against the beta so far (the NULL 
cxx_stdlib error that Ken saw.) I guess I'll tag an RC soon.

- Josh


Reply via email to