Skip to content
This repository has been archived by the owner on Jul 3, 2023. It is now read-only.

[JIT] Jit compiler panic #372

Open
mihaibudiu opened this issue Apr 14, 2023 · 2 comments
Open

[JIT] Jit compiler panic #372

mihaibudiu opened this issue Apr 14, 2023 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@mihaibudiu
Copy link

Yet another kind of panic:

thread 'main' panicked at 'assertion failed: `(left != right)`
  left: `String`,
 right: `String`', crates/dataflow-jit/src/ir/validate.rs:970:17

JSON:

{
  "nodes" : {
    "11797" : {
      "Source" : {
        "layout" : 1,
        "table" : "T"
      }
    },
    "11841" : {
      "Map" : {
        "input" : 11797,
        "map_fn" : {
          "args" : [ {
            "id" : 1,
            "layout" : 1,
            "flags" : "input"
          }, {
            "id" : 2,
            "layout" : 2,
            "flags" : "output"
          } ],
          "ret" : "Unit",
          "entry_block" : 1,
          "blocks" : {
            "1" : {
              "id" : 1,
              "body" : [ [ 3, {
                "Load" : {
                  "source" : 1,
                  "source_layout" : 3,
                  "column" : 3,
                  "column_type" : "String"
                }
              } ], [ 4, {
                "Constant" : {
                  "String" : " "
                }
              } ], [ 5, {
                "Constant" : {
                  "Bool" : false
                }
              } ], [ 6, {
                "BinOp" : {
                  "lhs" : 3,
                  "rhs" : 4,
                  "kind" : "Or",
                  "operand_ty" : "String"
                }
              } ], [ 7, {
                "Load" : {
                  "source" : 1,
                  "source_layout" : 3,
                  "column" : 3,
                  "column_type" : "String"
                }
              } ], [ 8, {
                "Constant" : {
                  "Bool" : false
                }
              } ], [ 9, {
                "BinOp" : {
                  "lhs" : 6,
                  "rhs" : 7,
                  "kind" : "Or",
                  "operand_ty" : "String"
                }
              } ], [ 10, {
                "Store" : {
                  "target" : 2,
                  "target_layout" : 2,
                  "column" : 0,
                  "value" : {
                    "Expr" : 9
                  },
                  "value_type" : "String"
                }
              } ] ],
              "terminator" : {
                "Return" : {
                  "value" : {
                    "Imm" : "Unit"
                  }
                }
              }
            }
          }
        },
        "layout" : 2
      }
    },
    "11843" : {
      "Sink" : {
        "input" : 11841,
        "query" : "CREATE VIEW V AS SELECT T.COL4 || ' ' || T.COL4 FROM T"
      }
    }
  },
  "layouts" : {
    "1" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "I32"
      }, {
        "nullable" : false,
        "ty" : "F64"
      }, {
        "nullable" : false,
        "ty" : "Bool"
      }, {
        "nullable" : false,
        "ty" : "String"
      }, {
        "nullable" : true,
        "ty" : "I32"
      }, {
        "nullable" : true,
        "ty" : "F64"
      } ]
    },
    "2" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "String"
      } ]
    },
    "3" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "I32"
      }, {
        "nullable" : false,
        "ty" : "F64"
      }, {
        "nullable" : false,
        "ty" : "Bool"
      }, {
        "nullable" : false,
        "ty" : "String"
      }, {
        "nullable" : true,
        "ty" : "I32"
      }, {
        "nullable" : true,
        "ty" : "F64"
      } ]
    }
  }
}
@mihaibudiu mihaibudiu added the bug Something isn't working label Apr 14, 2023
@Kixiron
Copy link
Contributor

Kixiron commented Apr 15, 2023

It's because you're trying to perform logical or on strings which doesn't exist, you probably want to call the @dbsp.str.concat_clone() and @dbsp.str.concat() functions

@Kixiron Kixiron removed the bug Something isn't working label Apr 15, 2023
@mihaibudiu
Copy link
Author

mihaibudiu commented Apr 28, 2023

Here is am improved JSON program, which causes a different panic, similar to #386

{
  "nodes" : {
    "78" : {
      "Source" : {
        "layout" : 1,
        "table" : "T"
      }
    },
    "123" : {
      "Map" : {
        "input" : 78,
        "map_fn" : {
          "args" : [ {
            "id" : 1,
            "layout" : 1,
            "flags" : "input"
          }, {
            "id" : 2,
            "layout" : 2,
            "flags" : "output"
          } ],
          "ret" : "Unit",
          "entry_block" : 1,
          "blocks" : {
            "1" : {
              "id" : 1,
              "body" : [ [ 3, {
                "Load" : {
                  "source" : 1,
                  "source_layout" : 3,
                  "column" : 3,
                  "column_type" : "String"
                }
              } ], [ 4, {
                "Constant" : {
                  "String" : " "
                }
              } ], [ 5, {
                "Call" : {
                  "function" : "dbsp.str.concat_clone",
                  "args" : [ 3, 4 ],
                  "arg_types" : [ {
                    "Scalar" : "String"
                  }, {
                    "Scalar" : "String"
                  } ],
                  "ret_ty" : "String"
                }
              } ], [ 6, {
                "Load" : {
                  "source" : 1,
                  "source_layout" : 3,
                  "column" : 3,
                  "column_type" : "String"
                }
              } ], [ 7, {
                "Call" : {
                  "function" : "dbsp.str.concat_clone",
                  "args" : [ 5, 6 ],
                  "arg_types" : [ {
                    "Scalar" : "String"
                  }, {
                    "Scalar" : "String"
                  } ],
                  "ret_ty" : "String"
                }
              } ], [ 8, {
                "Store" : {
                  "target" : 2,
                  "target_layout" : 2,
                  "column" : 0,
                  "value" : {
                    "Expr" : 7
                  },
                  "value_type" : "String"
                }
              } ] ],
              "terminator" : {
                "Return" : {
                  "value" : {
                    "Imm" : "Unit"
                  }
                }
              }
            }
          }
        },
        "output_layout" : {
          "Set" : 2
        },
        "input_layout" : {
          "Set" : 1
        }
      }
    },
    "125" : {
      "Sink" : {
        "input" : 123,
        "query" : "CREATE VIEW V AS SELECT T.COL4 || ' ' || T.COL4 FROM T"
      }
    }
  },
  "layouts" : {
    "1" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "I32"
      }, {
        "nullable" : false,
        "ty" : "F64"
      }, {
        "nullable" : false,
        "ty" : "Bool"
      }, {
        "nullable" : false,
        "ty" : "String"
      }, {
        "nullable" : true,
        "ty" : "I32"
      }, {
        "nullable" : true,
        "ty" : "F64"
      } ]
    },
    "2" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "String"
      } ]
    },
    "3" : {
      "columns" : [ {
        "nullable" : false,
        "ty" : "I32"
      }, {
        "nullable" : false,
        "ty" : "F64"
      }, {
        "nullable" : false,
        "ty" : "Bool"
      }, {
        "nullable" : false,
        "ty" : "String"
      }, {
        "nullable" : true,
        "ty" : "I32"
      }, {
        "nullable" : true,
        "ty" : "F64"
      } ]
    }
  }
}

@mihaibudiu mihaibudiu added the bug Something isn't working label Apr 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants