get_bulk, set, and get_multi used 'with' chains that skipped close_socket when the operation failed, leaking file descriptors. Over time this exhausted the fd limit causing EMFILE crashes. Switched to case + try/after to guarantee socket cleanup.