加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – sysopen权限被拒绝

发布时间:2020-12-13 22:24:29 所属栏目:Windows 来源:网络整理
导读:我正在尝试修复 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.cc05479
我正在尝试修复 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开发人员更愿意找出根本原因,而不是发生工作的黑客(我认为正确的方法).那么,任何人都可以帮我找到否认我允许打开这些.lock文件的罪魁祸首吗?我有许多理论上可以用于此目的的工具,但它们并不完全是这样的:

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

简而言之,有没有什么方法可以在不成为微软员工的情况下获得更多信息?

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读