PG 9.5.2, freetds + tds_fdw => server crash

Поиск
Список
Период
Сортировка
От Daniel Westermann
Тема PG 9.5.2, freetds + tds_fdw => server crash
Дата
Msg-id 273678067.3402035.1461766285315.JavaMail.zimbra@dbi-services.com
обсуждение исходный текст
Ответы Re: PG 9.5.2, freetds + tds_fdw => server crash
Список pgsql-general
Hi,

I have installed freetds and can connect to the remote mssql server:

postgres@pgreporting:/home/postgres/ [PGREP] tsql -S mssql -U ds2user -P xxxxxxx -D ds2 -o v
locale is "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=de_CH.UTF-8;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=de_CH.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=de_CH.UTF-8;LC_NAME=de_CH.UTF-8;LC_ADDRESS=de_CH.UTF-8;LC_TELEPHONE=de_CH.UTF-8;LC_MEASUREMENT=de_CH.UTF-8;LC_IDENTIFICATION=de_CH.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Setting ds2 as default database in login packet
1> select count(*) from sys.databases;
2> go

5
(1 row affected)
using TDS version 7.3

PostgreSQL version is 9.5.2:

postgres=# select version();
                                                          version                                                           
----------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.5.2 dbi services build on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
(1 row)


Created the fdw stuff like this:


postgres=# \dx
                                            List of installed extensions
  Name   | Version |   Schema   |                                    Description                                    
---------+---------+------------+-----------------------------------------------------------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
 tds_fdw | 1.0.7   | public     | Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
(2 rows)

postgres=# create server mssql_svr foreign data wrapper tds_fdw options ( servername '192.168.22.102', port '1433',  database 'ds2', tds_version '7.3', msg_handler 'notice' );
CREATE SERVER
postgres=# CREATE USER MAPPING FOR postgres SERVER mssql_svr  OPTIONS (username 'ds2user', password 'xxxxxx');
CREATE USER MAPPING
postgres=# create foreign table ds2_mssql.customers (CUSTOMERID            int
,FIRSTNAME             varchar(50)
,LASTNAME              varchar(50)
,ADDRESS1              varchar(50)
,ADDRESS2              varchar(50)
,CITY                  varchar(50)
,STATE                 varchar(50)
,ZIP                   int
,COUNTRY               varchar(50)
,REGION                int
,EMAIL                 varchar(50)
,PHONE                 varchar(50)
,CREDITCARDTYPE        int
,CREDITCARD            varchar(50)
,CREDITCARDEXPIRATION  varchar(50)
,USERNAME              varchar(50)
,PASSWORD              varchar(50)
,AGE                   int
,GENDER                varchar(50))
SERVER mssql_svr
    OPTIONS (query 'select * from dbo.customers', row_estimate_method 'showplan_all');
CREATE FOREIGN TABLE

Once I do a select from the foreign table the server just crashes:

postgres=# select count(*) from ds2_mssql.customers;
server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

This is from the log:

2016-04-24 14:34:31.896 CEST - 16 - 23252 -  - @ LOG:  server process (PID 23796) was terminated by signal 11: Segmentation fault
2016-04-24 14:34:31.896 CEST - 17 - 23252 -  - @ DETAIL:  Failed process was running: select count(*) from ds2_mssql.customers;
2016-04-24 14:34:31.896 CEST - 18 - 23252 -  - @ LOG:  terminating any other active server processes
2016-04-24 14:34:31.898 CEST - 2 - 23454 -  - @ WARNING:  terminating connection because of crash of another server process
2016-04-24 14:34:31.898 CEST - 3 - 23454 -  - @ DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2016-04-24 14:34:31.898 CEST - 4 - 23454 -  - @ HINT:  In a moment you should be able to reconnect to the database and repeat your command.
2016-04-24 14:34:31.901 CEST - 19 - 23252 -  - @ LOG:  archiver process (PID 23455) exited with exit code 1
2016-04-24 14:34:31.901 CEST - 1 - 23797 - [local] - postgres@postgres FATAL:  the database system is in recovery mode
2016-04-24 14:34:31.902 CEST - 20 - 23252 -  - @ LOG:  all server processes terminated; reinitializing
2016-04-24 14:34:31.931 CEST - 1 - 23798 -  - @ LOG:  database system was interrupted; last known up at 2016-04-24 14:33:15 CEST
2016-04-24 14:34:32.262 CEST - 2 - 23798 -  - @ LOG:  database system was not properly shut down; automatic recovery in progress
2016-04-24 14:34:32.264 CEST - 3 - 23798 -  - @ LOG:  redo starts at 0/7074278
2016-04-24 14:34:32.264 CEST - 4 - 23798 -  - @ LOG:  invalid record length at 0/7077270
2016-04-24 14:34:32.264 CEST - 5 - 23798 -  - @ LOG:  redo done at 0/7076100
2016-04-24 14:34:32.266 CEST - 6 - 23798 -  - @ LOG:  checkpoint starting: end-of-recovery immediate
2016-04-24 14:34:32.270 CEST - 7 - 23798 -  - @ LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.000 s, sync=0.001 s, total=0.005 s; sync files=1, longest=0.001 s, average=0.001 s; distance=12 kB, estimate=12 kB
2016-04-24 14:34:32.272 CEST - 8 - 23798 -  - @ LOG:  MultiXact member wraparound protections are now enabled
2016-04-24 14:34:32.274 CEST - 21 - 23252 -  - @ LOG:  database system is ready to accept connections
2016-04-24 14:34:32.274 CEST - 1 - 23802 -  - @ LOG:  autovacuum launcher started

If I increase the log level:

postgres=# alter system set log_min_messages='INFO';
ALTER SYSTEM

... I additionally get this:

2016-04-24 14:43:56.265 CEST - 1 - 24539 - [local] - postgres@postgres NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 2, Msg: Changed database context to 'ds2'., Server: WSCORE\SQL2014, Process: , Line: 1, Level: 0
2016-04-24 14:43:56.265 CEST - 2 - 24539 - [local] - postgres@postgres NOTICE:  DB-Library notice: Msg #: 5703, Msg state: 1, Msg: Changed language setting to us_english., Server: WSCORE\SQL2014, Process: , Line: 1, Level: 0
2016-04-24 14:43:56.268 CEST - 3 - 24539 - [local] - postgres@postgres NOTICE:  DB-Library notice: Msg #: 5701, Msg state: 2, Msg: Changed database context to 'ds2'., Server: WSCORE\SQL2014, Process: , Line: 1, Level: 0
2016-04-24 14:43:56.268 CEST - 4 - 24539 - [local] - postgres@postgres NOTICE:  DB-Library notice: Msg #: 5703, Msg state: 1, Msg: Changed language setting to us_english., Server: WSCORE\SQL2014, Process: , Line: 1, Level: 0


The OS is (64bit):

postgres@pgreporting:/home/postgres/ [PGREP] cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

Any ideas?

Thanks in advance
Daniel

В списке pgsql-general по дате отправления:

Предыдущее
От: Alex Ignatov
Дата:
Сообщение: Re: Does this perf output seem 'normal'?
Следующее
От: Will McCormick
Дата:
Сообщение: BDR Alter Table