是什么导致plink/批处理作业软件重复glibc错误?



我正在通过PBS批处理作业运行plink软件。当我运行作业时出现此错误:

 *** glibc detected *** /software/plink: double free or corruption (out): 0x000000018dfafca0 ***
 ======= Backtrace: =========
 [0x7d7691]
 [0x7d8bea]
 [0x45f5ed]
 [0x47bb11]
 [0x40669a]
 [0x7bdb2c]
 [0x400209]

然而,它只发生在我的一个文件(bw 30-60 gb的文件)上,每次重新运行都显示完全相同的回溯跟踪映射。我尝试不通过批处理调度器运行它,并再次收到相同的错误,具有相同的回溯映射。我只是在使用这个软件(plink),并没有写它,所以网上的大多数答案都是关于在你的程序中写和释放内存。

有什么想法吗?
  1. 是什么导致这个错误,和
  2. 我该如何修复它?

是什么导致这个错误,和

plink

中的双自由或堆损坏

我该如何修复它?

你不能。你可以做两件事中的一件,这取决于你知道和理解的程度。

首先,从源代码构建最新版本的plink,看看问题是否仍然存在。

如果没有,您就完成了(或者至少您可能希望其他人发现并修复了这个问题)。

如果它确实存在,您必须为您或plink开发人员充分调试问题以修复它。一些工具应该有帮助:Valgrind和Address Sanitizer(注意:除了Clang, Address Sanitizer也包含在GCC-4.8中)。

一旦您有了一个好的报告(内存被分配的位置,以及它被损坏的位置),您应该修复它并将修复提交给plink开发人员,或者给他们一个带有分配和损坏位置和堆栈跟踪的错误报告。

最新更新