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

[Native] - Query crossing the boundary condition fails with a not very clear error message against velox worker #22584

Open
mknegi opened this issue Apr 22, 2024 · 3 comments
Assignees

Comments

@mknegi
Copy link

mknegi commented Apr 22, 2024

Query crossing the boundary condition (size of the query length) fails as expected but the error returned isn't very obvious. Following is the testcase that fails in this case:

Testcase: presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java::testLargeBytecode()
Run under derived class: TestTpchDistributedQueries

Expected Behavior

It seems like this objective of this query was to test the boundary condition here so it was supposed to fail. The failure message isn’t as per expectation here.

SELECT x FROM (SELECT orderkey x, custkey y from orders limit 10) WHERE CASE true when x in (random(0), random(1), random(2), random(3), random(4), random(5), random(6), random(7), random(8), random(9), random(10), random(11), random(12), random(13), random(14), random(15), random(16), random(17), random(18), random(19), random(0)) then x = random() when x in (random(100), random(101), random(102), random(103), random(104), random(105), random(106), random(107), random(108), random(109), random(110), random(111), random(112), random(113), random(114), random(115), random(116), random(117), random(118), random(119), random(1)) then x = random() when x in (random(200), random(201), random(202), random(203), random(204), random(205), random(206), random(207), random(208), random(209), random(210), random(211), random(212), random(213), random(214), random(215), random(216), random(217), random(218), random(219), random(2)) then x = random() when x in (random(300), random(301), random(302), random(303), random(304), random(305), random(306), random(307), random(308), random(309), random(310), random(311), random(312), random(313), random(314), random(315), random(316), random(317), random(318), random(319), random(3)) then x = random() when x in (random(400), random(401), random(402), random(403), random(404), random(405), random(406), random(407), random(408), random(409), random(410), random(411), random(412), random(413), random(414), random(415), random(416), random(417), random(418), random(419), random(4)) then x = random() when x in (random(500), random(501), random(502), random(503), random(504), random(505), random(506), random(507), random(508), random(509), random(510), random(511), random(512), random(513), random(514), random(515), random(516), random(517), random(518), random(519), random(5)) then x = random() when x in (random(600), random(601), random(602), random(603), random(604), random(605), random(606), random(607), random(608), random(609), random(610), random(611), random(612), random(613), random(614), random(615), random(616), random(617), random(618), random(619), random(6)) then x = random() when x in (random(700), random(701), random(702), random(703), random(704), random(705), random(706), random(707), random(708), random(709), random(710), random(711), random(712), random(713), random(714), random(715), random(716), random(717), random(718), random(719), random(7)) then x = random() when x in (random(800), random(801), random(802), random(803), random(804), random(805), random(806), random(807), random(808), random(809), random(810), random(811), random(812), random(813), random(814), random(815), random(816), random(817), random(818), random(819), random(8)) then x = random() when x in (random(900), random(901), random(902), random(903), random(904), random(905), random(906), random(907), random(908), random(909), random(910), random(911), random(912), random(913), random(914), random(915), random(916), random(917), random(918), random(919), random(9)) then x = random() when x in (random(1000), random(1001), random(1002), random(1003), random(1004), random(1005), random(1006), random(1007), random(1008), random(1009), random(1010), random(1011), random(1012), random(1013), random(1014), random(1015), random(1016), random(1017), random(1018), random(1019), random(10)) then x = random() when x in (random(1100), random(1101), random(1102), random(1103), random(1104), random(1105), random(1106), random(1107), random(1108), random(1109), random(1110), random(1111), random(1112), random(1113), random(1114), random(1115), random(1116), random(1117), random(1118), random(1119), random(11)) then x = random() when x in (random(1200), random(1201), random(1202), random(1203), random(1204), random(1205), random(1206), random(1207), random(1208), random(1209), random(1210), random(1211), random(1212), random(1213), random(1214), random(1215), random(1216), random(1217), random(1218), random(1219), random(12)) then x = random() when x in (random(1300), random(1301), random(1302), random(1303), random(1304), random(1305), random(1306), random(1307), random(1308), random(1309), random(1310), random(1311), random(1312), random(1313), random(1314), random(1315), random(1316), random(1317), random(1318), random(1319), random(13)) then x = random() when x in (random(1400), random(1401), random(1402), random(1403), random(1404), random(1405), random(1406), random(1407), random(1408), random(1409), random(1410), random(1411), random(1412), random(1413), random(1414), random(1415), random(1416), random(1417), random(1418), random(1419), random(14)) then x = random() when x in (random(1500), random(1501), random(1502), random(1503), random(1504), random(1505), random(1506), random(1507), random(1508), random(1509), random(1510), random(1511), random(1512), random(1513), random(1514), random(1515), random(1516), random(1517), random(1518), random(1519), random(15)) then x = random() when x in (random(1600), random(1601), random(1602), random(1603), random(1604), random(1605), random(1606), random(1607), random(1608), random(1609), random(1610), random(1611), random(1612), random(1613), random(1614), random(1615), random(1616), random(1617), random(1618), random(1619), random(16)) then x = random() when x in (random(1700), random(1701), random(1702), random(1703), random(1704), random(1705), random(1706), random(1707), random(1708), random(1709), random(1710), random(1711), random(1712), random(1713), random(1714), random(1715), random(1716), random(1717), random(1718), random(1719), random(17)) then x = random() when x in (random(1800), random(1801), random(1802), random(1803), random(1804), random(1805), random(1806), random(1807), random(1808), random(1809), random(1810), random(1811), random(1812), random(1813), random(1814), random(1815), random(1816), random(1817), random(1818), random(1819), random(18)) then x = random() when x in (random(1900), random(1901), random(1902), random(1903), random(1904), random(1905), random(1906), random(1907), random(1908), random(1909), random(1910), random(1911), random(1912), random(1913), random(1914), random(1915), random(1916), random(1917), random(1918), random(1919), random(19)) then x = random() when x in (random(2000), random(2001), random(2002), random(2003), random(2004), random(2005), random(2006), random(2007), random(2008), random(2009), random(2010), random(2011), random(2012), random(2013), random(2014), random(2015), random(2016), random(2017), random(2018), random(2019), random(20)) then x = random() when x in (random(2100), random(2101), random(2102), random(2103), random(2104), random(2105), random(2106), random(2107), random(2108), random(2109), random(2110), random(2111), random(2112), random(2113), random(2114), random(2115), random(2116), random(2117), random(2118), random(2119), random(21)) then x = random() when x in (random(2200), random(2201), random(2202), random(2203), random(2204), random(2205), random(2206), random(2207), random(2208), random(2209), random(2210), random(2211), random(2212), random(2213), random(2214), random(2215), random(2216), random(2217), random(2218), random(2219), random(22)) then x = random() when x in (random(2300), random(2301), random(2302), random(2303), random(2304), random(2305), random(2306), random(2307), random(2308), random(2309), random(2310), random(2311), random(2312), random(2313), random(2314), random(2315), random(2316), random(2317), random(2318), random(2319), random(23)) then x = random() when x in (random(2400), random(2401), random(2402), random(2403), random(2404), random(2405), random(2406), random(2407), random(2408), random(2409), random(2410), random(2411), random(2412), random(2413), random(2414), random(2415), random(2416), random(2417), random(2418), random(2419), random(24)) then x = random() when x in (random(2500), random(2501), random(2502), random(2503), random(2504), random(2505), random(2506), random(2507), random(2508), random(2509), random(2510), random(2511), random(2512), random(2513), random(2514), random(2515), random(2516), random(2517), random(2518), random(2519), random(25)) then x = random() when x in (random(2600), random(2601), random(2602), random(2603), random(2604), random(2605), random(2606), random(2607), random(2608), random(2609), random(2610), random(2611), random(2612), random(2613), random(2614), random(2615), random(2616), random(2617), random(2618), random(2619), random(26)) then x = random() when x in (random(2700), random(2701), random(2702), random(2703), random(2704), random(2705), random(2706), random(2707), random(2708), random(2709), random(2710), random(2711), random(2712), random(2713), random(2714), random(2715), random(2716), random(2717), random(2718), random(2719), random(27)) then x = random() when x in (random(2800), random(2801), random(2802), random(2803), random(2804), random(2805), random(2806), random(2807), random(2808), random(2809), random(2810), random(2811), random(2812), random(2813), random(2814), random(2815), random(2816), random(2817), random(2818), random(2819), random(28)) then x = random() when x in (random(2900), random(2901), random(2902), random(2903), random(2904), random(2905), random(2906), random(2907), random(2908), random(2909), random(2910), random(2911), random(2912), random(2913), random(2914), random(2915), random(2916), random(2917), random(2918), random(2919), random(29)) then x = random() when x in (random(3000), random(3001), random(3002), random(3003), random(3004), random(3005), random(3006), random(3007), random(3008), random(3009), random(3010), random(3011), random(3012), random(3013), random(3014), random(3015), random(3016), random(3017), random(3018), random(3019), random(30)) then x = random() when x in (random(3100), random(3101), random(3102), random(3103), random(3104), random(3105), random(3106), random(3107), random(3108), random(3109), random(3110), random(3111), random(3112), random(3113), random(3114), random(3115), random(3116), random(3117), random(3118), random(3119), random(31)) then x = random() when x in (random(3200), random(3201), random(3202), random(3203), random(3204), random(3205), random(3206), random(3207), random(3208), random(3209), random(3210), random(3211), random(3212), random(3213), random(3214), random(3215), random(3216), random(3217), random(3218), random(3219), random(32)) then x = random() when x in (random(3300), random(3301), random(3302), random(3303), random(3304), random(3305), random(3306), random(3307), random(3308), random(3309), random(3310), random(3311), random(3312), random(3313), random(3314), random(3315), random(3316), random(3317), random(3318), random(3319), random(33)) then x = random() when x in (random(3400), random(3401), random(3402), random(3403), random(3404), random(3405), random(3406), random(3407), random(3408), random(3409), random(3410), random(3411), random(3412), random(3413), random(3414), random(3415), random(3416), random(3417), random(3418), random(3419), random(34)) then x = random() when x in (random(3500), random(3501), random(3502), random(3503), random(3504), random(3505), random(3506), random(3507), random(3508), random(3509), random(3510), random(3511), random(3512), random(3513), random(3514), random(3515) x = random() when x in (random(3600), random(3601), random(3602), random(3603), .....random(9911), random(9912), random(9913), random(9914), random(9915), random(9916), random(9917), random(9918), random(9919), random(99)) then x = random()else x = random() end

Current Behavior

Mismatch of error message

`java.lang.AssertionError:

Error message Native : 'input > 0 (0 vs. 0) bound must be positive presto.default.random(0:INTEGER)'

Error Message Java: 'Query results in large bytecode exceeding the limits imposed by JVM|Compiler' for query: `

@aditi-pandit
Copy link
Contributor

@mknegi : Am a bit confused by the error messages you have stated. Is Java message 'input > 0 (0 vs. 0) bound must be positive presto.default.random(0:INTEGER)' vs Native gave you 'Query results in large bytecode exceeding the limits imposed by JVM|Compiler' for query: `. The former error message seems to come from the function runtime. The latter message is in some java co-ordinator code.

@mknegi
Copy link
Author

mknegi commented Apr 24, 2024

@mknegi : Am a bit confused by the error messages you have stated. Is Java message 'input > 0 (0 vs. 0) bound must be positive presto.default.random(0:INTEGER)' vs Native gave you 'Query results in large bytecode exceeding the limits imposed by JVM|Compiler' for query: `. The former error message seems to come from the function runtime. The latter message is in some java co-ordinator code.

@aditi-pandit - Second message is the current expected error message. Since this testcase is a port of e2e testcase therefore the error message is what was being returned for the query if run against the java worker. First message is what is being returned by the c++ worker. As you can see this error isn't very helpful.

@aditi-pandit
Copy link
Contributor

@mknegi : The Native Error message is actually reasonable. The CASE expression being evaluated has in random(0). And 0 is an invalid input for random function. So "input > 0 (0 vs. 0) bound must be positive presto.default.random(0:INTEGER)" should be fine.

We should fix the test case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🆕 Unprioritized
Status: Backlog
Development

No branches or pull requests

2 participants