Bug #90661 runtime error: 3.72529e+19 is outside the range of representable values of type
Submitted: 27 Apr 2018 10:07 Modified: 30 Apr 2018 18:00
Reporter: Tor Didriksen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[27 Apr 2018 10:07] Tor Didriksen
Description:
sql/sql_planner.cc:2316:36: runtime error: 3.72529e+19 is outside the range of representable values of type 'unsigned long long'
    #0 0x4610a6b in Optimize_table_order::consider_plan(unsigned int, Opt_trace_object*) sql/sql_planner.cc:2316:36
    #1 0x460dc48 in Optimize_table_order::best_extension_by_limited_search(unsigned long long, unsigned int, unsigned int) sql/sql_planner.cc:2641:9
    #2 0x460db9b in Optimize_table_order::best_extension_by_limited_search(unsigned long long, unsigned int, unsigned int) sql/sql_planner.cc:2636:13

sql/opt_explain.cc:1459:62: runtime error: 3.72529e+19 is outside the range of representable values of type 'unsigned long long'
    #0 0x5f21549 in Explain_join::explain_rows_and_filtered() sql/opt_explain.cc:1459:62
    #1 0x5efb63e in Explain::prepare_columns() sql/opt_explain.cc:663:36
    #2 0x5f182a8 in Explain_join::explain_qep_tab(unsigned long) sql/opt_explain.cc:1301:32
    #3 0x5f1650a in Explain_join::shallow_explain() sql/opt_explain.cc:1258:9
    #4 0x5f00226 in Explain::send() sql/opt_explain.cc:686:14
    #5 0x5f346a0 in explain_query_specification(THD*, SELECT_LEX*, enum_parsing_context) sql/opt_explain.cc:1961:18
    #6 0x5eff4df in mysql_explain_unit(THD*, SELECT_LEX_UNIT*) sql/opt_explain.cc:2105:11
    #7 0x5f35d3a in explain_query(THD*, SELECT_LEX_UNIT*) sql/opt_explain.cc:2038:20
    #8 0x4768a2d in Sql_cmd_dml::execute_inner(THD*) sql/sql_select.cc:648:9

How to repeat:
build with clang/ubsan

./mtr --mem --sanitize funcs_1.innodb_views

Suggested fix:
Check for out-of-bounds conversion of double -> unsigned long long
[30 Apr 2018 18:00] Paul Dubois
Posted by developer:
 
Fixed in 8.0.13.

A runtime error could occur for values outside the range of
representable values of type unsigned long long.