申威编译gpdb-1.13.0 启动报错的问题

服务器软件 服务器软件 1515 人阅读 | 2 人回复 | 2021-06-04

The files belonging to this database system will be owned by user "gpadmin".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default text search configuration will be set to "english".

Data page checksums are enabled.

creating directory /data/gpdata/master/gpseg-1 ... ok
creating subdirectories ... ok
selecting default max_connections ... initdb: error 34304 from: "/usr/local/tonggp/bin/postgres" --boot -x0 -F -c max_connections
    =250 -c shared_buffers=4000 -c dynamic_shared_memory_type=none < "/dev/null" > "/data/gpdata/master/gpseg-1.initdb" 2>&1
initdb: removing data directory "/data/gpdata/master/gpseg-1"
2021-06-04 05:50:10.257438 GMT,,,p22145,th71442448,,,,0,,,seg-10000,,,,,"LOG","00000","skipping missing configuration file ""/dat
    a/gpdata/master/gpseg-1/postgresql.auto.conf""",,,,,,,,"ParseConfigFile","guc-file.l",562,
2021-06-04 05:52:26.502339 GMT,,,p22145,th71442448,,,,0,,,seg-10000,,,,,"PANIC","XX000","stuck spinlock (0x200101ce038) detected
    at shmem.c:201",,,,,,,,"s_lock_stuck","s_lock.c",42,1    0x1207f38f8 postgres errstart + 0x398
2    0x1207f6728 postgres elog_finish + 0xc8
3    0x1205fca20 postgres s_lock + 0x200
4    0x1205e290c postgres ShmemAlloc + 0xec
5    0x1205e2a90 postgres InitShmemAllocation + 0xa0
6    0x1205d79cc postgres CreateSharedMemoryAndSemaphores + 0xe3c
7    0x12080c808 postgres BaseInit + 0xb8
8    0x1201cb688 postgres AuxiliaryProcessMain + 0x4e8
9    0x1200a9868 postgres main + 0x328
10   0x2000c073b9c libc.so.6.1 __libc_start_main + 0x11c
11   0x1200aa06c postgres _start + 0x3c

Aborted




回复

使用道具 举报

回答|共 2 个

weilh

发表于 2021-6-4 15:45:25 | 显示全部楼层

我修改的是gpdb-6.13.0/src/include/storage/s_lock.h文件中这里的代码
#if defined(__alpha) || defined(__alpha__) || defined(__sw_64__)        /* Alpha */
/*
* Correct multi-processor locking methods are explained in section 5.5.3
* of the Alpha AXP Architecture Handbook, which at this writing can be
* found at ftp://ftp.netbsd.org/pub/NetBSD/misc/dec-docs/index.html.
* For gcc we implement the handbook's code directly with inline assembler.
*/
#define HAS_TEST_AND_SET

typedef unsigned long slock_t;

#define TAS(lock)  tas(lock)

static __inline__ int
tas(volatile slock_t *lock)
{
        register slock_t _res;

        __asm__ __volatile__(
                "       ldl     $0, %1\n"
                "       bne     $0, 2f\n"
                "       lldl    %0, %1\n"
                "       cmpeq   %0,0,%0\n"
                "       wr_f    %0\n"
                "       mov     %0, $0\n"
                "       lstl    $0, %1\n"
                "       rd_f    $0\n"
                "       beq     %0, 2f\n"
                "       beq     $0, 2f\n"
                "       memb\n"
                "       br      3f\n"
                "2:     mov     1, %0\n"
                "3:\n"
                : "=&r"(_res), "+m"(*lock)
                :
                : "memory", "0");
        return (int) _res;
}

#define S_UNLOCK(lock)  \
do \
{\
        __asm__ __volatile__ (" memb \n"); \
        *((volatile slock_t *) (lock)) = 0; \
} while (0)

#endif /* __alpha || __alpha__ */

是不是这里的汇编指令错了呢?
回复

使用道具 举报

TecSupport

发表于 2021-6-9 16:40:39 | 显示全部楼层

这个问题,提交了工单,已经解决中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则