我对 pgsql 源代码做了一些改动,比如添加了一个新的系统目录。然后我想使用initdb -D PG_DATA_PATH
. 但是遇到了这个问题:
The files belonging to this database system will be owned by user "pguser".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
creating directory /home/pguser/Desktop/postgres/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... America/Los_Angeles
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... Segmentation fault (core dumped)
child process exited with exit code 139
initdb: removing data directory "/home/pguser/Desktop/postgres/data"
当我执行和时没有错误或警告。另外,我使用 gdb 来回溯 initdb 的执行:make
make install
Program received signal SIGPIPE, Broken pipe.
0x00007ffff7475224 in __GI___libc_write (fd=4, buf=0x555555838910, nbytes=71)
at ../sysdeps/unix/sysv/linux/write.c:27
27 ../sysdeps/unix/sysv/linux/write.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7475224 in __GI___libc_write (fd=4, buf=0x555555838910,
nbytes=71) at ../sysdeps/unix/sysv/linux/write.c:27
#1 0x00007ffff73f028d in _IO_new_file_write (f=0x555555828040,
data=0x555555838910, n=71) at fileops.c:1203
#2 0x00007ffff73f2021 in new_do_write (to_do=71,
data=0x555555838910 " * string literal (including a function body!) or a multiline comment.\n\n\n\nguage';\nge';\n;\n;\nrministic, collencoding, collcollate, collctype)VALUES (pg_nextoid('pg_catalog.pg_collation', 'oid', 'pg_cata"...,
fp=0x555555828040) at fileops.c:457
#3 _IO_new_do_write (fp=0x555555828040,
data=0x555555838910 " * string literal (including a function body!) or a multiline comment.\n\n\n\nguage';\nge';\n;\n;\nrministic, collencoding, collcollate, collctype)VALUES (pg_nextoid('pg_catalog.pg_collation', 'oid', 'pg_cata"...,
to_do=71) at fileops.c:433
#4 0x00007ffff73ef858 in _IO_new_file_sync (fp=0x555555828040)
at fileops.c:813
#5 0x00007ffff73e395d in __GI__IO_fflush (fp=0x555555828040) at iofflush.c:40
#6 0x000055555555d5ec in setup_dictionary (cmdfd=0x555555828040)
at initdb.c:1675
#7 0x000055555555f838 in initialize_data_directory () at initdb.c:2909
#8 0x0000555555560234 in main (argc=3, argv=0x7fffffffded8) at initdb.c:3228
这个故障的潜在原因是什么????SIGPIPE 信号???我希望有人能帮助我!!!谢谢。