Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query (mclient or jdbc) with 2 outer joins appears to crash connectionor server #2915

Closed
monetdb-team opened this issue Nov 30, 2020 · 0 comments
Labels
bug Something isn't working major SQL

Comments

@monetdb-team
Copy link

Date: 2011-10-29 14:47:22 +0200
From: ultan <>
To: SQL devs <>
Version: 11.7.5 (Dec2011) [obsolete]
CC: @njnes

Last updated: 2012-03-16 14:56:56 +0100

Comment 16493

Date: 2011-10-29 14:47:22 +0200
From: ultan <>

User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Build Identifier:

Trying to create adapter in Apache Jena for MonetDB. Jena unit test "Optional - 1" is failing while connected to newly created database with a particular query.

Merovingian log shows :
2011-10-27 20:53:45 MSG merovingian[7189]: target connection is on local UNIX domain socket, passing on filedescriptor instead of proxying
2011-10-27 20:53:45 MSG merovingian[7189]: proxying client localhost.localdomain:55769 for database 'TEST2H' to mapi:monetdb:///home/ultan/my-farm/TEST2H/.mapi.sock?database=TEST2H
2011-10-27 20:53:45 MSG merovingian[7189]: target connection is on local UNIX domain socket, passing on filedescriptor instead of proxying
2011-10-27 20:53:48 MSG merovingian[7189]: database 'TEST2H' (8527) was killed by signal SIGSEGV
2011-10-27 21:00:59 MSG merovingian[7189]: caught SIGTERM, starting shutdown sequence
2011-10-27 21:00:59 MSG control[7189]: control channel closed
2011-10-27 21:00:59 ERR discovery[7189]: error while sending broadcast message: Network is unreachable
2011-10-27 21:00:59 MSG merovingian[7189]: Merovingian 1.5 stopped

JDBC debug log shows

RD 1319891391488: inserting prompt
TD 1319891391488: write final block: 14 bytes
TX 1319891391488: Xauto_commit 1
RD 1319891391488: read final block: 0 bytes
RX 1319891391488:
RD 1319891391488: inserting prompt
TD 1319891391502: write final block: 574 bytes
TX 1319891391502: sSELECT R_1.lex AS V_1_lex, R_1.datatype AS V_1_datatype, R_1.lang AS V_1_lang, R_1.type AS V_1_type,
R_2.lex AS V_2_lex, R_2.datatype AS V_2_datatype, R_2.lang AS V_2_lang, R_2.type AS V_2_type
FROM
( SELECT T_1.s AS X_1
FROM Triples AS T_1
WHERE ( T_1.p = 2004134117598721274
AND T_1.o = 435905340492217258 )
) AS T_1
LEFT OUTER JOIN
Triples AS T_2
ON ( T_2.p = 3816485599920428794
AND T_1.X_1 = T_2.s )
LEFT OUTER JOIN
Nodes AS R_1
ON ( T_1.X_1 = R_1.hash )
LEFT OUTER JOIN
Nodes AS R_2
ON ( T_2.o = R_2.hash )
;
TD 1319891419345: write final block: 11 bytes
TX 1319891419345: Xrelease 11

Reproducible: Always

Steps to Reproduce:

  1. Create Jena Schema and contents using following Dump:

START TRANSACTION;
SET SCHEMA "sys";
CREATE TABLE "sys"."prefixes" (
"prefix" VARCHAR(50) NOT NULL,
"uri" VARCHAR(500) NOT NULL,
CONSTRAINT "prefixes_prefix_pkey" PRIMARY KEY ("prefix")
);
COPY 1 RECORDS INTO "sys"."prefixes" FROM stdin USING DELIMITERS '\t','\n','"';
":" "http://example/"
CREATE TABLE "sys"."nodes" (
"hash" BIGINT NOT NULL,
"lex" CHARACTER LARGE OBJECT NOT NULL,
"lang" VARCHAR(10) NOT NULL,
"datatype" VARCHAR(200),
"type" INTEGER NOT NULL,
CONSTRAINT "nodes_hash_pkey" PRIMARY KEY ("hash")
);
COPY 13 RECORDS INTO "sys"."nodes" FROM stdin USING DELIMITERS '\t','\n','"';
-8395209716130787220 "http://example/x" "" "" 2
2004134117598721274 "http://example/p" "" "" 2
435905340492217258 "1" "" "http://www.w3.org/2001/XMLSchemainteger" 5
745852752491398227 "2" "" "http://www.w3.org/2001/XMLSchemainteger" 5
-5334307821581591471 "3" "" "http://www.w3.org/2001/XMLSchemainteger" 5
4788264553748351656 "http://example/a" "" "" 2
8936870869765386580 "http://example/b" "" "" 2
3816485599920428794 "http://example/q1" "" "" 2
-5216419694041718175 "http://example/z1" "" "" 2
-8287201118401564753 "http://example/q2" "" "" 2
7121703792433320712 "http://example/z2" "" "" 2
-4064636373028764940 "http://example/z" "" "" 2
-3401798235167296541 "abc" "" "" 3
CREATE TABLE "sys"."triples" (
"s" BIGINT NOT NULL,
"p" BIGINT NOT NULL,
"o" BIGINT NOT NULL,
CONSTRAINT "triples_s_p_o_pkey" PRIMARY KEY ("s", "p", "o")
);
CREATE INDEX "objsubj" ON "sys"."triples" ("o", "s");
CREATE INDEX "predobj" ON "sys"."triples" ("p", "o");
COPY 9 RECORDS INTO "sys"."triples" FROM stdin USING DELIMITERS '\t','\n','"';
-8395209716130787220 2004134117598721274 435905340492217258
-8395209716130787220 2004134117598721274 745852752491398227
-8395209716130787220 2004134117598721274 -5334307821581591471
-8395209716130787220 2004134117598721274 4788264553748351656
-8395209716130787220 2004134117598721274 8936870869765386580
4788264553748351656 3816485599920428794 -5216419694041718175
4788264553748351656 -8287201118401564753 7121703792433320712
8936870869765386580 3816485599920428794 -5216419694041718175
-4064636373028764940 2004134117598721274 -3401798235167296541
CREATE TABLE "sys"."quads" (
"g" BIGINT NOT NULL,
"s" BIGINT NOT NULL,
"p" BIGINT NOT NULL,
"o" BIGINT NOT NULL,
CONSTRAINT "quads_g_s_p_o_pkey" PRIMARY KEY ("g", "s", "p", "o")
);
CREATE INDEX "graobjsubj" ON "sys"."quads" ("g", "o", "s");
CREATE INDEX "grapredobj" ON "sys"."quads" ("g", "p", "o");
CREATE INDEX "objsubjpred" ON "sys"."quads" ("o", "s", "p");
CREATE INDEX "predobjsubj" ON "sys"."quads" ("p", "o", "s");
CREATE INDEX "subjpredobj" ON "sys"."quads" ("s", "p", "o");
COMMIT;

  1. Connect with mclient or jdbc connection and issue following query

SELECT R_1.lex AS V_1_lex, R_1.datatype AS V_1_datatype, R_1.lang AS V_1_lang, R_1.type AS V_1_type,
R_2.lex AS V_2_lex, R_2.datatype AS V_2_datatype, R_2.lang AS V_2_lang, R_2.type AS V_2_type
FROM
( SELECT T_1.s AS X_1
FROM Triples AS T_1
WHERE ( T_1.p = 2004134117598721274
AND T_1.o = 435905340492217258 )
) AS T_1
LEFT OUTER JOIN
Triples AS T_2
ON ( T_2.p = 3816485599920428794
AND T_1.X_1 = T_2.s )
LEFT OUTER JOIN
Nodes AS R_1
ON ( T_1.X_1 = R_1.hash )

Actual Results:

Connection crash, possibly server ?
JDBC shows SQLException : java.sql.SQLException: Read from localhost:50000: End of stream reached (mserver still alive?)

Expected Results:

Statment execution, result set returned.

Comment 16646

Date: 2011-12-09 09:40:21 +0100
From: @sjoerdmullender

Changeset 6b880a8a3952 made by Sjoerd Mullender sjoerd@acm.org in the MonetDB repo, refers to this bug.

For complete details, see http//devmonetdborg/hg/MonetDB?cmd=changeset;node=6b880a8a3952

Changeset description:

Added test for bug #2915.

Comment 16699

Date: 2011-12-27 15:28:34 +0100
From: @njnes

Changeset 57700c6efacb made by Niels Nes niels@cwi.nl in the MonetDB repo, refers to this bug.

For complete details, see http//devmonetdborg/hg/MonetDB?cmd=changeset;node=57700c6efacb

Changeset description:

fix bug with semijoins. This partialy fixes bug #2933 and bug #2915.

Comment 17012

Date: 2012-02-27 19:36:00 +0100
From: @njnes

test runs without problems

Comment 17103

Date: 2012-03-16 14:56:56 +0100
From: @grobian

Released in Dec2011-SP2

@monetdb-team monetdb-team added bug Something isn't working major SQL labels Nov 30, 2020
@sjoerdmullender sjoerdmullender added this to the Ancient Release milestone Nov 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working major SQL
Projects
None yet
Development

No branches or pull requests

2 participants