```
select value % -9223372036854775808 from (select toInt32(arrayJoin([3, 5])) value)
```

Server dies (aborted), no stacktraces, only the subject line in log. Does not reproduce on playground for some reason.
{
    auto selector = createSelector(block);
    
    const size_t num_shards = cluster->getShardsInfo().size();
    Blocks splitted_blocks(num_shards);
    for (size_t shard_idx = 0; shard_idx < num_shards; ++shard_idx)
        splitted_blocks[shard_idx] = block.cloneEmpty();
    size_t columns_in_block = block.columns();
    for (size_t col_idx_in_block = 0; col_idx_in_block < columns_in_block; ++col_idx_in_block)
    {
        MutableColumns splitted_columns = block.getByPosition(col_idx_in_block).column->scatter(num_shards, selector);
        for (size_t shard_idx = 0; shard_idx < num_shards; ++shard_idx)
            splitted_blocks[shard_idx].getByPosition(col_idx_in_block).column = std::move(splitted_columns[shard_idx]);
    }
    return splitted_blocks;
}
void DistributedBlockOutputStream::writeSplitAsync(const Block & block)
{
    Blocks splitted_blocks = splitBlock(block);
    const size_t num_shards = splitted_blocks.size();
    for (size_t shard_idx = 0; shard_idx < num_shards; ++shard_idx)
        if (splitted_blocks[shard_idx].rows())
            writeAsyncImpl(splitted_blocks[shard_idx], shard_idx);
    ++inserted_blocks;
}
void DistributedBlockOutputStream::writeAsyncImpl(const Block & block, const size_t shard_id)