gpt4 book ai didi

windows - sysopen 权限被拒绝

转载 作者:可可西里 更新时间:2023-11-01 13:28:17 24 4
gpt4 key购买 nike

我正在尝试修复 git-svn 中的间歇性错误.问题仅发生在 Windows XP 中,同时使用 Cygwin git (perl v5.10.1) 和 msysGit (perl v5.8.8)。

对于任何涉及获取的操作,我都能够中途完成,然后操作终止并显示类似于

的消息

Couldn't open .git/svn/refs/remotes/trunk/.rev_map.cc05479a-e8ea-436f-8d71-e07493b7796c.lock: Device or resource busy

at /usr/lib/git-core/git-svn line 5240

但是,确切的锁文件和行号并不总是相同的。我已经追踪到第 3679 行的实际问题

sysopen(my $fh, $db_lock, O_RDWR | O_CREAT)

这是在创建一个新的 .lock 文件,我尝试了等效的方法但无济于事。

open(my $fh, ">", $db_lock)

我查看了目录的权限,是drwxr-xr-x,应该没有问题,如果有也不会这么不一致。

这可能是因为脚本快速连续多次创建和重命名此文件,以至于 XP 无法处理它?编辑:我怀疑是这种情况,因为当我使用 perl 调试器并手动启动每个 sysopen 的执行时,我获取的 100 个修订没有问题。

编辑:一些 Git 开发人员宁愿找出根本原因,也不愿采用碰巧有效的 hack(我认为这是正确的方法)。那么,谁能帮我找到拒绝我打开这些 .lock 文件的权限的罪魁祸首?我有许多理论上可用于此目的的工具,但它们并没有完全适用:

  • Process Explorer - 显示进程拥有的所有句柄,还可以搜索拥有给定句柄的所有进程。但是,它不适用于短暂的进程或句柄(这是 git svn clone/fetch 所做的)
  • Unlocker - 检测何时出现通用的“权限被拒绝”对话框并找到有问题的句柄并提出处理它们。但是,当非资源管理器程序遇到基于文件的错误时,它不会出现

简而言之,如果我不是 Microsoft 员工,有什么方法可以获取更多信息?

编辑 2:它可能不是赛门铁克,而是我们在联网计算机上运行的另一个程序。我有一些人在调查它,他们至少应该能够缩小这里的原因。

最佳答案

这种行为通常可归因于防病毒组件保持文件打开并延迟删除。

关于windows - sysopen 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com