fixed `drain` bug splicing with upgrading