• Marko Mäkelä's avatar
    MDEV-28371 Assertion fold == id.fold() failed in buf_flush_check_neighbor() · fdec842f
    Marko Mäkelä authored
    Due to 32-bit arithmetics, SRV_TMP_SPACE_ID page number 0x200002 would be
    folded to 0, which is incompatible with the assumption that was made in
    commit 7cffb5f6 (MDEV-23399).
    
    page_id_t::fold(): Compute in the native word width instead of uint32_t.
    On 64-bit platforms, an alternative would be to return the 64-bit m_id
    directly, but that was measured to cause a performance regression.
    
    fil_space_t::open(): Invoke fil_node_t::find_metadata() when the
    tablespace is being created. In this way, we will actually detect
    that the temporary tablespace resides on SSD. (During database
    creation, also the system tablespace will correctly be detected as
    residing on SSD.)
    fdec842f
fil0fil.cc 106 KB