FIXED: Assertion failed in bk fast-import


#1

I tried to import
https://github.com/voidlinux/void-packages with HEAD
ee15e564c2f40177fb0f3a51a746c2aacb94cc7c
using

% src/bk --version 
BitKeeper version is 20160531192716 for x86_64-glibc223-linux
Built by: chris@juno.(none) in /home/chris/src/bk.fast-import/src
Built on: Mon Jun 06 2016 15:24:09 CEST (24 minutes ago)
Running on: x86_64-glibc223-linux,4.5.4_1
Latest version: bk-7.2.1ce  (released 21 days ago)
% bk describe
bk-7.2.1ce+39@0x574de594

when it crashed:

% git -C ~/void-packages fast-export master | pv | bk fast-import
...
import srcpkgs/chroot-gawk/template
import srcpkgs/chroot-gcc/chroot-gcc.rshlibs
import srcpkgs/chroot-gcc/files
bk: slib.c:7516: sccs_get: Assertion `flags & NOGFILE' failed.

Backtrace:

Core was generated by `bk fast-import'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f6228977207 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:54
54      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007f6228977207 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007f622897868a in __GI_abort () at abort.c:89
#2  0x00007f62289701ed in __assert_fail_base (
    fmt=0x7f6228aac390 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x60c63a "flags & NOGFILE", 
    file=file@entry=0x60a25b "slib.c", line=line@entry=7516, 
    function=function@entry=0x61020a <__PRETTY_FUNCTION__.15196> "sccs_get")
    at assert.c:92
#3  0x00007f62289702a2 in __GI___assert_fail (
    assertion=0x60c63a "flags & NOGFILE", file=0x60a25b "slib.c", line=7516, 
    function=0x61020a <__PRETTY_FUNCTION__.15196> "sccs_get") at assert.c:101
#4  0x000000000052e4a6 in sccs_get (s=0x3d16eb0, rev=0x3c3a2d0 "1.2", 
    mRev=0x0, iLst=0x0, xLst=0x0, flags=1, printOut=0x0, out=0x0)
    at slib.c:7516
#5  0x000000000047ad9a in newMerge (op=0x7ffef05c6aa0, m=0x7ffef05c6900, 
    cmt=0x2985198, g=0x0) at fast-import.c:1508
#6  0x0000000000478e66 in importFile (op=0x7ffef05c6aa0, 
    file=0x230c030 "srcpkgs/chroot-gcc/files") at fast-import.c:1125
#7  0x0000000000476fbc in gitImport (op=0x7ffef05c6aa0) at fast-import.c:298
#8  0x0000000000476b13 in fastimport_main (ac=1, av=0x7ffef05c91c8)
    at fast-import.c:190
#9  0x0000000000405e55 in cmd_run (prog=0x7ffef05caaab "fast-import", is_bk=1, 
    ac=1, av=0x7ffef05c91c8) at bk.c:971
#10 0x00000000004052fe in main (ac=1, av=0x7ffef05c91c8, env=0x7ffef05c91e0)
    at bk.c:745

SCCS file in question:

% bk _scat SCCS/s.2009
H49838
s 0/0/0                                   
d D 1.1.1.1 14/02/06 12:34:38 xtraeme 4 2
c Delete: srcpkgs/chroot-gcc/files
cC
cK01231
cPBitKeeper/deleted/b2/files~c2a1030cca4e8e24|srcpkgs/chroot-gcc/files
e
s 0/0/0
d D 1.2 14/01/22 20:44:18 xtraeme 3 2
c Delete: srcpkgs/chroot-gcc/files
cC
cK01231
cPBitKeeper/deleted/b2/files~c2a1030cca4e8e24|srcpkgs/chroot-gcc/files
e
s 0/0/0
d D 1.1 13/02/23 15:38:16 xtraeme 2 1
cBchris@void.(none)|ChangeSet|19700101010000|41578|e1d36c08d8d099c6
cC
cF1
cK01231
cOlrwxrwxrwx ../gcc/patches
e
s 0/0/0
d D 1.0 13/02/23 15:38:16 xtraeme 1 0
cHgmail.com
cK31664
cPsrcpkgs/chroot-gcc/files
cRc2a1030cca4e8e24
cV4
cX0x821
cZ+0100
e
u
U
f e 64
f x 0x821
t
T
I 2
E 2

HTH.


#2

I pushed an update to the fast-import code that now imports this repository without errors.
Still not sure it is correct. I didn’t do the validation step with fast-export.


#3

Update

This repository now imports correctly:

$ time  /home/wscott/bk/dev-oss-fastimport/src/bk fast-import import < void-packages.fast-export
 [fast-import]                     100% |==============================| OK
Writing new ChangeSet file...
Renumber...
Generate checksums...
Rename sfiles...

real	2m27.807s
user	1m22.868s
sys	0m12.504s

I have examined the resulting repository and the only differences are a couple files in git that have random CRLF line endings where bk text files are normalized to not have them.