Opened 6 years ago

Closed 6 years ago

#3197 closed defect (fixed)

Assertion nus->keyframe_pts[k] > last_pts failed when using "-f segment"

Reported by: ob Owned by:
Priority: important Component: avformat
Version: git-master Keywords: nut crash abort regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
Hi,

I'm trying to split VOB files cleanly with ffmpeg-2.1.1/Linux (32bit), using -f segment. My goal is to encode the resulting files in parallel on a cluster of machines, before merging everything back.

My understanding is that -f segment should create a new output file every time there's a key frame in the stream. However, I'm getting:

Assertion nus->keyframe_pts[k] > last_pts failed at libavformat/nutenc.c:596

The failed assertion is there:

            ff_put_v(bc, 1 + 2*flag + 4*n);
            for (k= j - n; k<=j && k<nut->sp_count; k++) {
                if (nus->keyframe_pts[k] == AV_NOPTS_VALUE)
                    continue;
=>              av_assert0(nus->keyframe_pts[k] > last_pts);
                ff_put_v(bc, nus->keyframe_pts[k] - last_pts);
                last_pts = nus->keyframe_pts[k];
            }

The command I ran was:

  ffmpeg -report -i concat:$(echo VTS_01*.VOB | tr ' ' \|) -map 0:1 -map 0:13 -codec copy -f segment output-%08d.nut

Full report attached.

Attachments (4)

ffmpeg-20131205-003008.log (16.3 KB) - added by ob 6 years ago.
Full Report
ffmpeg-20131205-185637.log (16.4 KB) - added by ob 6 years ago.
Full Report (with binary compiled from head)
bad_chunk.vob (36.0 KB) - added by ob 6 years ago.
Bad Chunk
new_bad.vob (745.0 KB) - added by ob 6 years ago.

Download all attachments as: .zip

Change History (22)

Changed 6 years ago by ob

Full Report

comment:1 Changed 6 years ago by cehoyos

  • Component changed from FFmpeg to avformat
  • Keywords nut crash abort added
  • Priority changed from normal to important

Is the problem also reproducible with current FFmpeg git head?

comment:2 Changed 6 years ago by ob

I just tested, and yes. I'll attach this report too.

Changed 6 years ago by ob

Full Report (with binary compiled from head)

comment:3 Changed 6 years ago by cehoyos

Is the concat filter required to reproduce the problem? Does it also happen if you only copy audio or only video (with -an or -vn)? Are specific samples needed?

comment:4 Changed 6 years ago by ob

Apparently it all works fine if I try without concat.

-an and -vn stop on the first file with this message:

Output file #0 does not contain any stream

The stream ids are changing between VOBs, which is likely an issue. Here's ffprobe output for all of them:

VTS_01_0.VOB
ffprobe version N-58754-ge2bf00c Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mpeg, from 'VTS_01_0.VOB':
  Duration: 00:00:02.40, start: 0.128389, bitrate: 3618 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 64:45 DAR 16:9], max. 9800 kb/s, 25 fps, 4.17 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x21]: Subtitle: dvd_subtitle
    Stream #0:3[0x20]: Subtitle: dvd_subtitle
Unsupported codec with id 1145979222 for input stream 0
===============
VTS_01_1.VOB
ffprobe version N-58754-ge2bf00c Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mpeg, from 'VTS_01_1.VOB':
  Duration: 00:21:40.12, start: 0.053622, bitrate: 6607 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x2a]: Subtitle: dvd_subtitle
    Stream #0:3[0x29]: Subtitle: dvd_subtitle
    Stream #0:4[0x28]: Subtitle: dvd_subtitle
    Stream #0:5[0x27]: Subtitle: dvd_subtitle
    Stream #0:6[0x26]: Subtitle: dvd_subtitle
    Stream #0:7[0x25]: Subtitle: dvd_subtitle
    Stream #0:8[0x24]: Subtitle: dvd_subtitle
    Stream #0:9[0x23]: Subtitle: dvd_subtitle
    Stream #0:10[0x22]: Subtitle: dvd_subtitle
    Stream #0:11[0x21]: Subtitle: dvd_subtitle
    Stream #0:12[0x20]: Subtitle: dvd_subtitle
    Stream #0:13[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Unsupported codec with id 1145979222 for input stream 0
===============
VTS_01_2.VOB
ffprobe version N-58754-ge2bf00c Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
[mpeg2video @ 0xa3cb440] Invalid frame dimensions 0x0.
    Last message repeated 7 times
Input #0, mpeg, from 'VTS_01_2.VOB':
  Duration: 00:21:41.98, start: 1300.273300, bitrate: 6597 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1bf]: Data: dvd_nav_packet
    Stream #0:3[0x2a]: Subtitle: dvd_subtitle
    Stream #0:4[0x29]: Subtitle: dvd_subtitle
    Stream #0:5[0x28]: Subtitle: dvd_subtitle
    Stream #0:6[0x27]: Subtitle: dvd_subtitle
    Stream #0:7[0x26]: Subtitle: dvd_subtitle
    Stream #0:8[0x25]: Subtitle: dvd_subtitle
    Stream #0:9[0x24]: Subtitle: dvd_subtitle
    Stream #0:10[0x23]: Subtitle: dvd_subtitle
    Stream #0:11[0x22]: Subtitle: dvd_subtitle
    Stream #0:12[0x21]: Subtitle: dvd_subtitle
    Stream #0:13[0x20]: Subtitle: dvd_subtitle
Unsupported codec with id 1145979222 for input stream 2
===============
VTS_01_3.VOB
ffprobe version N-58754-ge2bf00c Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
[mpeg2video @ 0xa723440] Invalid frame dimensions 0x0.
    Last message repeated 1 times
Input #0, mpeg, from 'VTS_01_3.VOB':
  Duration: 00:22:44.42, start: 2602.353300, bitrate: 6295 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x1bf]: Data: dvd_nav_packet
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Unsupported codec with id 1145979222 for input stream 1
===============
VTS_01_4.VOB
ffprobe version N-58754-ge2bf00c Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
[mpeg2video @ 0xad6d440] Invalid frame dimensions 0x0.
Input #0, mpeg, from 'VTS_01_4.VOB':
  Duration: 00:19:27.43, start: 3966.865300, bitrate: 6561 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1bf]: Data: dvd_nav_packet
Unsupported codec with id 1145979222 for input stream 2
===============

Using the original command but with concat:$(echo VTS_01_[1234].VOB | tr ' ' \|) and -map 0 fails with:

$ ~/git/ffmpeg/ffmpeg -i concat:$(echo VTS_01_[1234].VOB | tr ' ' \|) -vn -codec copy -f segment output-%08d.nut
ffmpeg version N-58754-ge2bf00c Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mpeg, from 'concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB':
  Duration: 01:25:34.24, start: 0.053622, bitrate: 6511 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x2a]: Subtitle: dvd_subtitle
    Stream #0:3[0x29]: Subtitle: dvd_subtitle
    Stream #0:4[0x28]: Subtitle: dvd_subtitle
    Stream #0:5[0x27]: Subtitle: dvd_subtitle
    Stream #0:6[0x26]: Subtitle: dvd_subtitle
    Stream #0:7[0x25]: Subtitle: dvd_subtitle
    Stream #0:8[0x24]: Subtitle: dvd_subtitle
    Stream #0:9[0x23]: Subtitle: dvd_subtitle
    Stream #0:10[0x22]: Subtitle: dvd_subtitle
    Stream #0:11[0x21]: Subtitle: dvd_subtitle
    Stream #0:12[0x20]: Subtitle: dvd_subtitle
    Stream #0:13[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Output #0, segment, to 'output-%08d.nut':
Output file #0 does not contain any stream

As for the samples, I'm not legally allowed to share them (I guess that's a common issue for you guys). Are some test samples available somewhere so I can reproduce with something you can use too?

I suspect that's all because of the changing stream ids but I'm not sure how to work around this. If I process each VOB separately without concat, will I lose audio and/or video continuity?

comment:5 follow-ups: Changed 6 years ago by ob

Actually, interestingly enough, it fails if I specify only the first VOB file and the video stream:

$ ~/git/ffmpeg/ffmpeg -i VTS_01_1.VOB -map 0:1 -codec copy -f segment output/output-1-%08d.nut
ffmpeg version N-58754-ge2bf00c Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mpeg, from 'VTS_01_1.VOB':
  Duration: 00:21:40.12, start: 0.053622, bitrate: 6607 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x2a]: Subtitle: dvd_subtitle
    Stream #0:3[0x29]: Subtitle: dvd_subtitle
    Stream #0:4[0x28]: Subtitle: dvd_subtitle
    Stream #0:5[0x27]: Subtitle: dvd_subtitle
    Stream #0:6[0x26]: Subtitle: dvd_subtitle
    Stream #0:7[0x25]: Subtitle: dvd_subtitle
    Stream #0:8[0x24]: Subtitle: dvd_subtitle
    Stream #0:9[0x23]: Subtitle: dvd_subtitle
    Stream #0:10[0x22]: Subtitle: dvd_subtitle
    Stream #0:11[0x21]: Subtitle: dvd_subtitle
    Stream #0:12[0x20]: Subtitle: dvd_subtitle
    Stream #0:13[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Output #0, segment, to 'output/output-1-%08d.nut':
  Metadata:
    encoder         : Lavf55.22.100
    Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
Press [q] to stop, [?] for help
[nut @ 0x9a05820] Negative pts not supported stream 0, pts -9223372036854775808
av_interleaved_write_frame(): Invalid argument

comment:6 in reply to: ↑ 5 Changed 6 years ago by cehoyos

  • Version changed from unspecified to git-master

Replying to ob:

Actually, interestingly enough, it fails if I specify only the first VOB file and the video stream:

Please cut the sample as small as possible to still reproduce the issue and upload it.

comment:7 Changed 6 years ago by ob

What method do you prefer for me to cut it? dd with a block size of 2048?

comment:8 Changed 6 years ago by cehoyos

dd is the recommended method but any other method that produces an output file that allows to reproduce the problem is also fine.

Changed 6 years ago by ob

Bad Chunk

comment:9 Changed 6 years ago by ob

bad_chunk.vob attached.

comment:10 Changed 6 years ago by cehoyos

I am unable to reproduce the assertion failure with the sample and command line you provided:

$ ffmpeg -i bad_chunk.vob -map 0:1 -codec copy -f segment output/output-1-%08d.nut
ffmpeg version N-58799-g5ac5581 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  6 2013 11:02:07 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 46.100 / 55. 46.100
  libavformat    55. 22.101 / 55. 22.101
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from 'bad_chunk.vob':
  Duration: N/A, start: 0.053622, bitrate: N/A
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x2a]: Subtitle: dvd_subtitle
    Stream #0:3[0x29]: Subtitle: dvd_subtitle
    Stream #0:4[0x28]: Subtitle: dvd_subtitle
    Stream #0:5[0x27]: Subtitle: dvd_subtitle
    Stream #0:6[0x26]: Subtitle: dvd_subtitle
    Stream #0:7[0x25]: Subtitle: dvd_subtitle
    Stream #0:8[0x24]: Subtitle: dvd_subtitle
    Stream #0:9[0x23]: Subtitle: dvd_subtitle
    Stream #0:10[0x22]: Subtitle: dvd_subtitle
    Stream #0:11[0x21]: Subtitle: dvd_subtitle
    Stream #0:12[0x20]: Subtitle: dvd_subtitle
[segment @ 0x22e3560] Failed to open segment 'output/output-1-00000000.nut'
Output #0, segment, to 'output/output-1-%08d.nut':
  Metadata:
    encoder         : Lavf55.22.101
    Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): No such file or directory
Version 0, edited 6 years ago by cehoyos (next)

comment:11 Changed 6 years ago by ob

I guess the error you got before you edited your post was because the output directory didn't exist, which you apparently fixed. The new error does look like the last one I'm getting.

comment:12 Changed 6 years ago by cehoyos

But your original report was about an assertion failure (which is an important crash), how can I reproduce it?

comment:13 Changed 6 years ago by ob

Yes, this bug drifted a little bit from the original report. I'll try to cut samples from the other VOB files to try and reproduce with concat and content I can upload. I'll update this when I'm done.

comment:14 Changed 6 years ago by ob

~/git/ffmpeg/ffmpeg -i new_bad.vob -map 0:1 -map 0:13 -codec copy -f segment output-%08d.nut seems to reproduce the problem consistently. It's crafted from the 298 first blocks of both VTS_01_0.VOB and VTS_01_1.VOB (each block being 2048 bytes). Hopefully this doesn't reproduce the problem for completely different reasons.

new_bad.vob attached.

$ ~/git/ffmpeg/ffmpeg -i new_bad.vob -map 0:1 -map 0:13 -codec copy -f segment output-%08d.nut
ffmpeg version N-58754-ge2bf00c Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  5 2013 18:55:53 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
  configuration: --disable-stripping
  libavutil      52. 56.100 / 52. 56.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 91.100 /  3. 91.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mpeg, from 'new_bad.vob':
  Duration: 00:00:02.01, start: 0.053622, bitrate: 3033 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 64:45 DAR 16:9], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:2[0x21]: Subtitle: dvd_subtitle
    Stream #0:3[0x20]: Subtitle: dvd_subtitle
    Stream #0:4[0x2a]: Subtitle: dvd_subtitle
    Stream #0:5[0x29]: Subtitle: dvd_subtitle
    Stream #0:6[0x28]: Subtitle: dvd_subtitle
    Stream #0:7[0x27]: Subtitle: dvd_subtitle
    Stream #0:8[0x26]: Subtitle: dvd_subtitle
    Stream #0:9[0x25]: Subtitle: dvd_subtitle
    Stream #0:10[0x24]: Subtitle: dvd_subtitle
    Stream #0:11[0x23]: Subtitle: dvd_subtitle
    Stream #0:12[0x22]: Subtitle: dvd_subtitle
    Stream #0:13[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Output #0, segment, to 'output-%08d.nut':
  Metadata:
    encoder         : Lavf55.22.100
    Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
    Stream #0:1: Audio: ac3, 48000 Hz, stereo, 192 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:13 -> #0:1 (copy)
Press [q] to stop, [?] for help
[segment @ 0x9703540] Non-monotonous DTS in output stream 0:0; previous: -3600, current: -3600; changing to -3599. This may result in incorrect timestamps in the output file.
Assertion nus->keyframe_pts[k] > last_pts failed at libavformat/nutenc.c:598
Aborted

Changed 6 years ago by ob

comment:15 Changed 6 years ago by cehoyos

  • Keywords regression added
  • Reproduced by developer set
  • Status changed from new to open

comment:16 Changed 6 years ago by cehoyos

The assertion failure is a regression since 3a621c9d

comment:17 in reply to: ↑ 5 Changed 6 years ago by cehoyos

Replying to ob:

$ ~/git/ffmpeg/ffmpeg -i VTS_01_1.VOB -map 0:1 -codec copy -f segment output/output-1-%08d.nut

...

[nut @ 0x9a05820] Negative pts not supported stream 0, pts -9223372036854775808
av_interleaved_write_frame(): Invalid argument

You might be able to fix this with -fflags +genpts

comment:18 Changed 6 years ago by cehoyos

  • Resolution set to fixed
  • Status changed from open to closed

The assertion failure was fixed by Michael in de2a2caf

Note: See TracTickets for help on using tickets.