Xin ZF

Results 17 comments of Xin ZF

我想要上手任务的前3个 : )

> > 我想要上手任务的前3个 : ) > > 可以先选一个分配给你,给其他小伙伴也留点机会,做完了可以再过来认领,任务列表也会更新😁 那我先选`ErrWhenBuildListIdx`这个吧

想认领一个`tx_list_test.go` @bigboss2063

Windows 10 稳定复现。暂时没有测试其他版本。 Ubuntu 22.04 稳定不复现。 这个报错很多时候会出现在`os.OpenFile`打开文件后,没有调用`Close`函数就直接调用了`os.Remove`的场景 代码中看起来有按时释放`db.ActiveFile`,由于Ubuntu是能正常执行完代码的,所以怀疑是在Windows系统下,没能正确释放对已有文件的占用,所以在删除时会报这个错,后续我看在Mac上能不能复现(估计不能) 这个问题我可能会在这周末再在Windows上尝试下,手头这台windows有点太卡了 QAQ 后续可能需要调查下有没有把文件正常释放掉,以及在Ubuntu和Windows上释放文件占用的区别

@barryzxy 这个问题的原因已确定,问题在于`nutsdb`的`getFd`函数中会对传入的路径参数调用`filepath.Clean()`,该函数会将传入的路径转化为一个“标准路径”,例如会将`E://nutsdb`转化为`E:\\nutsdb`。由于这个路径的不同,导致`nutsdb`在Windows下不能正常的释放文件。 建议可以先work around一下,即使用如下代码打开一个db: ```golang db, err := nutsdb.Open( options, nutsdb.WithDir(filepath.Clean("./nutsdb")), ) ``` 这样,确保在传入时就使用了一个“标准路径”

这个issue看起来好像还没有提PR,我想给这个issue提个PR,所以可以把这个PR分配给我么

> 此外,你现在的commit有两个地方可以改下: > > 1. ErrFailedLockFlushing 命名上不需要标注 failed , Err 前缀已经暗示了失败的意思。可以叫做:ErrConcurrentAccess = "concurrent connection access" > 2. 不需要抽象成函数,因为 lock unlock 最好写在一个函数里 好嘞,已知晓