无法在AiX 7.2计算机上使用编译的二进制文件(版本1.10.2)创建Subversion存储库

时间:2018-12-21 09:24:45

标签: svn aix

我们已经使用compile命令在AiX机器上编译了Subversion 1.10.2:-

./configure CFLAGS="-I/temp1110/subversion/zlib" --without-berkeley-db --with-apr=/temp1110/subversion/apr --with-apr-util=/temp1110/subversion/apr-util --with-lz4=internal --with-utf8proc=internal --disable-nls

因此,在使用“ make”命令生成所需文件之后。我们无法创建存储库。传递命令./svnadmin create /temp1110/home/Repo_test"后,我们得到错误:

  

svnadmin:E000009:无法写入'/ temp1110 / home / Repo_test / db / current'   原子svnadmin:E000009:无法刷新文件   '/ temp1110 / home / Repo_test / db'到磁盘:文件号错误

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好吧,您无法解决这个问题,这是Subversion中的错误。

或更确切地说是AIX特定的问题:在目录上调用fsync(2)返回errno=EBADF,这使subverions/libsvn_subr/io.c:svn_io_flush_to_disk感到沮丧。

此问题可以通过以下补丁修复:

--- subversion/libsvn_subr/io.cold  2018-01-19 05:00:11.000000000 +0100
+++ subversion/libsvn_subr/io.c     2018-12-22 20:25:42.000000000 +0100
@@ -4286,7 +4286,13 @@
      return svn_error_wrap_apr(status, _("Can't move '%s' to '%s'"),
                                svn_dirent_local_style(from_path, pool),
                                svn_dirent_local_style(to_path, pool));
- 
+ #if !defined(_AIX)
+     /* on Aix, you cannot do fsync(2) on a directory,
+        also you cannot open a file for APR_WRITE
+        if its access bits are 444
+        Nonetheless this is a very useful peace of code,
+        just not for AIX.
+     */
  #if defined(SVN_ON_POSIX)
    if (flush_to_disk)
      {
@@ -4314,7 +4320,7 @@
        SVN_ERR(svn_io_file_close(file, pool));
      }
  #endif
- 
+ #endif
    return SVN_NO_ERROR;
  }