Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 06e335b

Browse files
committed
Merge branch 'PGPROEE10_MULTIMASTER' of gitlab.postgrespro.ru:pgpro-dev/postgrespro into PGPROEE10_MULTIMASTER
2 parents 986e797 + bdbea77 commit 06e335b

File tree

6 files changed

+33
-25
lines changed

6 files changed

+33
-25
lines changed

contrib/mmts/Cluster.pm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ sub configure
116116
my $unix_sock_dir = $ENV{PGHOST};
117117

118118
$node->append_conf("postgresql.conf", qq(
119-
log_statement = none
119+
log_statement = all
120120
listen_addresses = '$host'
121121
unix_socket_directories = '$unix_sock_dir'
122122
port = $pgport
@@ -141,7 +141,7 @@ sub configure
141141
multimaster.max_nodes = 6
142142
multimaster.ignore_tables_without_pk = false
143143
multimaster.queue_size = 4194304
144-
log_line_prefix = '%t: '
144+
log_line_prefix = '%t [%p]: '
145145
));
146146

147147
$node->append_conf("pg_hba.conf", qq(

contrib/mmts/pglogical_apply.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,8 +1067,8 @@ process_remote_update(StringInfo s, Relation rel)
10671067
bool found_tuple;
10681068
TupleData old_tuple;
10691069
TupleData new_tuple;
1070-
Oid idxoid;
1071-
Relation idxrel = InvalidOid;
1070+
Oid idxoid = InvalidOid;
1071+
Relation idxrel;
10721072
TupleDesc tupDesc = RelationGetDescr(rel);
10731073
ScanKeyData skey[INDEX_MAX_KEYS];
10741074
HeapTuple remote_tuple = NULL;
@@ -1168,7 +1168,7 @@ process_remote_update(StringInfo s, Relation rel)
11681168
}
11691169

11701170
/* release locks upon commit */
1171-
if (OidIsValid(idxrel))
1171+
if (OidIsValid(idxoid))
11721172
index_close(idxrel, NoLock);
11731173

11741174
PopActiveSnapshot();

contrib/mmts/pglogical_receiver.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,8 @@ pglogical_receiver_main(Datum main_arg)
663663
timeout.tv_usec = usecs;
664664
timeoutptr = &timeout;
665665

666-
r = pg_select(PQsocket(conn) + 1, &input_mask, NULL, NULL, timeoutptr, conn->isRsocket);
666+
r = PQselect(PQsocket(conn) + 1, &input_mask, NULL, NULL, timeoutptr,
667+
PQisRsocket(conn));
667668
if (r == 0)
668669
{
669670
int64 now = feGetCurrentTimestamp();

contrib/mmts/state.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ MtmStateProcessNeighborEvent(int node_id, MtmNeighborEvent ev) // XXXX camelcase
247247
*/
248248
if (!BIT_CHECK(Mtm->disabledNodeMask, node_id-1))
249249
{
250-
BIT_SET(Mtm->disabledNodeMask, node_id-1);
250+
MTM_LOG1("[WARN] node %d started recovery, but it wasn't disabled", node_id);
251+
MtmOnNodeDisconnect(node_id-1);
251252
}
252-
// BIT_SET(Mtm->pglogicalSenderMask, node_id - 1);
253253
break;
254254

255255
case MTM_NEIGHBOR_WAL_SENDER_START_RECOVERED:

src/common/pg_rsocket.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,17 @@
4949
#define RDMACM_NAME "librdmacm.so.1"
5050

5151
/* Declarations of rsocket functions */
52-
PgSocketCall *rcalls = NULL;
52+
static PgSocketCall *rcalls = NULL;
5353

5454
static void *rdmacm_handle = NULL;
5555

56+
PgSocketCall * pg_sock_vtab(void)
57+
{
58+
if (!rcalls)
59+
initialize_rsocket();
60+
return rcalls;
61+
}
62+
5663
/*
5764
* Returns pointer to the function of the library
5865
*/

src/include/common/pg_socket.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,72 +73,72 @@ typedef struct PgSocketCall
7373
int (*fcntl) (int socket, int cmd, ... /* arg */ );
7474
} PgSocketCall;
7575

76-
extern PgSocketCall *rcalls;
76+
extern PgSocketCall *pg_sock_vtab(void);
7777

7878
/*
7979
* These macroses call socket function depending on isRsocket value
8080
*/
8181

8282
#define pg_fcntl(fd, flag, value, isRsocket) \
83-
((isRsocket) ? rcalls->fcntl(fd, flag, value) : \
83+
((isRsocket) ? pg_sock_vtab()->fcntl(fd, flag, value) : \
8484
fcntl(fd, flag, value))
8585

8686
#define pg_socket(domain, type, protocol, isRsocket) \
87-
((isRsocket) ? rcalls->socket(domain, type, protocol) : \
87+
((isRsocket) ? pg_sock_vtab()->socket(domain, type, protocol) : \
8888
socket(domain, type, protocol))
8989

9090
#define pg_bind(socket, addr, addrlen, isRsocket) \
91-
((isRsocket) ? rcalls->bind(socket, addr, addrlen) : \
91+
((isRsocket) ? pg_sock_vtab()->bind(socket, addr, addrlen) : \
9292
bind(socket, addr, addrlen))
9393

9494
#define pg_listen(socket, backlog, isRsocket) \
95-
((isRsocket) ? rcalls->listen(socket, backlog) : \
95+
((isRsocket) ? pg_sock_vtab()->listen(socket, backlog) : \
9696
listen(socket, backlog))
9797

9898
#define pg_accept(socket, addr, addrlen, isRsocket) \
99-
((isRsocket) ? rcalls->accept(socket, addr, addrlen) : \
99+
((isRsocket) ? pg_sock_vtab()->accept(socket, addr, addrlen) : \
100100
accept(socket, addr, addrlen))
101101

102102
#define pg_connect(socket, addr, addrlen, isRsocket) \
103-
((isRsocket) ? rcalls->connect(socket, addr, addrlen) : \
103+
((isRsocket) ? pg_sock_vtab()->connect(socket, addr, addrlen) : \
104104
connect(socket, addr, addrlen))
105105

106106
#define pg_closesocket(socket, isRsocket) \
107-
((isRsocket) ? rcalls->close(socket) : \
107+
((isRsocket) ? pg_sock_vtab()->close(socket) : \
108108
closesocket(socket))
109109

110110
#define pg_recv(socket, buf, len, flags, isRsocket) \
111-
((isRsocket) ? rcalls->recv(socket, buf, len, flags) : \
111+
((isRsocket) ? pg_sock_vtab()->recv(socket, buf, len, flags) : \
112112
recv(socket, buf, len, flags))
113113

114114
#define pg_send(socket, buf, len, flags, isRsocket) \
115-
((isRsocket) ? rcalls->send(socket, buf, len, flags) : \
115+
((isRsocket) ? pg_sock_vtab()->send(socket, buf, len, flags) : \
116116
send(socket, buf, len, flags))
117117

118118
#define pg_sendmsg(socket, msg, flags, isRsocket) \
119-
((isRsocket) ? rcalls->sendmsg(socket, msg, flags) : \
119+
((isRsocket) ? pg_sock_vtab()->sendmsg(socket, msg, flags) : \
120120
sendmsg(socket, msg, flags))
121121

122122
#ifdef HAVE_POLL
123123
#define pg_poll(fds, nfds, timeout, isRsocket) \
124-
((isRsocket) ? rcalls->poll(fds, nfds, timeout) : \
124+
((isRsocket) ? pg_sock_vtab()->poll(fds, nfds, timeout) : \
125125
poll(fds, nfds, timeout))
126126
#endif
127127

128128
#define pg_select(nfds, readfds, writefds, exceptfds, timeout, isRsocket) \
129-
((isRsocket) ? rcalls->select(nfds, readfds, writefds, exceptfds, timeout) : \
129+
((isRsocket) ? pg_sock_vtab()->select(nfds, readfds, writefds, exceptfds, timeout) : \
130130
select(nfds, readfds, writefds, exceptfds, timeout))
131131

132132
#define pg_getsockname(socket, addr, addrlen, isRsocket) \
133-
((isRsocket) ? rcalls->getsockname(socket, addr, addrlen) : \
133+
((isRsocket) ? pg_sock_vtab()->getsockname(socket, addr, addrlen) : \
134134
getsockname(socket, addr, addrlen))
135135

136136
#define pg_setsockopt(socket, level, optname, optval, optlen, isRsocket) \
137-
((isRsocket) ? rcalls->setsockopt(socket, level, optname, optval, optlen) : \
137+
((isRsocket) ? pg_sock_vtab()->setsockopt(socket, level, optname, optval, optlen) : \
138138
setsockopt(socket, level, optname, optval, optlen))
139139

140140
#define pg_getsockopt(socket, level, optname, optval, optlen, isRsocket) \
141-
((isRsocket) ? rcalls->getsockopt(socket, level, optname, optval, optlen) : \
141+
((isRsocket) ? pg_sock_vtab()->getsockopt(socket, level, optname, optval, optlen) : \
142142
getsockopt(socket, level, optname, optval, optlen))
143143

144144
/* port/pg_rsocket.c */

0 commit comments

Comments
 (0)