bees icon indicating copy to clipboard operation
bees copied to clipboard

FIXME: bailing out here, need to fix this further up the call stack

Open dim-geo opened this issue 6 years ago • 10 comments

Please check #97 It's from the same run

19:49:38 gentoo beesd[29713]: crawl_258[29748]: Opening src bfr 4K [0xb002000..0xb003000] fid = 4480:685 fd = 94 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/subvol_snapshots/1775/snapshot/data1'
19:49:38 gentoo beesd[29713]: crawl_258[29748]: chase_extent_ref ino BtrfsInodeOffsetRoot { .m_inum = 685, .m_offset = 0xb000000, .m_root = 4480 } bbd BeesBlockData { 4K 0x28801000 fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2', data[4096] }
19:49:38 gentoo beesd[29713]: crawl_258[29748]: ino_off_root BtrfsInodeOffsetRoot { .m_inum = 685, .m_offset = 0xb000000, .m_root = 4480 }
19:49:38 gentoo beesd[29713]: crawl_258[29748]: for_each_extent_ref BeesBlockData { 4K 0x28801000 fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2', data[4096] } at 0xe7579000z2000: 41 found
19:49:38 gentoo beesd[29713]: crawl_258[29748]: overlap_bfr 0 (..0x0]
19:49:38 gentoo beesd[29713]: crawl_258[29748]: Opening dst bfr 4K [0x28801000..0x28802000] fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2'
19:49:38 gentoo beesd[29713]: crawl_258[29748]: replace_dst dst_bfr 4K [0x28801000..0x28802000] fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2'
19:49:38 gentoo beesd[29713]: crawl_258[29748]: finding one match (out of 41) at 0xe7579000z2000 for BeesBlockData { 4K 0x28801000 fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2', address = 0x46a401000, hash = 0x6b035ccf87d5e020, data[4096] }
19:49:38 gentoo beesd[29713]: crawl_258[29748]: resolved_addrs.size() = 220
19:49:38 gentoo beesd[29713]: crawl_258[29748]: Pushing hash 0x6b035ccf87d5e020 addr 0x46a401000 bbd BeesBlockData { 4K 0x28801000 fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2', address = 0x46a401000, hash = 0x6b035ccf87d5e020, data[4096] }
19:49:38 gentoo beesd[29713]: crawl_258[29748]: scan bbd BeesBlockData { 4K 0x28801000 fd = 7 '/run/bees/mnt/6a5e0f31-4857-4352-811a-c55dcdd44433/data2', address = 0x46a401000, hash = 0x6b035ccf87d5e020, data[4096] }
19:49:38 gentoo beesd[29713]: crawl_258[29748]: Extent { begin = 0x28800000, end = 0x288111b5, physical = 0x46a400000, flags = FIEMAP_EXTENT_LAST, physical_len = 0x12000, logical_len = 0x12000 } block_count 18
19:49:38 gentoo beesd[29713]: crawl_258[29748]: scan extent Extent { begin = 0x28800000, end = 0x288111b5, physical = 0x46a400000, flags = FIEMAP_EXTENT_LAST, physical_len = 0x12000, logical_len = 0x12000 }
19:49:38 gentoo beesd[29713]: crawl_258[29748]:
19:49:38 gentoo beesd[29713]: crawl_258[29748]: *** EXCEPTION ***
19:49:38 gentoo beesd[29713]: crawl_258[29748]:         exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
19:49:38 gentoo beesd[29713]: crawl_258[29748]: ***

dim-geo avatar Jan 01 '19 20:01 dim-geo

I think this is another incarnation of #89 and can be closed in favor of the other issue.

kakra avatar Jan 02 '19 01:01 kakra

Yeah this one is breaking out of a finite loop with billions of possible iterations. Like #99, we have to cross a dozen stack frames to kill a loop, so we use an exception. Long-term fix is a redesign of scan_one_extent.

Zygo avatar Jan 02 '19 02:01 Zygo

Maybe in short-term, you could create a separate exception class, i.e. "ExitLoopException", catch that, and prevent the stack trace from being printed and just print an informational message received via the exception?

kakra avatar Jan 02 '19 09:01 kakra

I agree with @kakra, when I see exceptions, I get nervous that my data would be lost.

dim-geo avatar Jan 02 '19 14:01 dim-geo

So we should follow-up on this in #89 because this raises concerns of users.

kakra avatar Jan 02 '19 14:01 kakra

I'm seeing the same error a lot too on a drive with many ro snapshots. Using bees from master branch from today.

2019-06-27 11:37:46 32228.32231<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
2019-06-27 11:37:46 32228.32232<6> crawl_11471: dedup: src 32K [0x32000..0x3a000] {0x3fe12023000z12000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190627T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:46 32228.32232<6> crawl_11471:        dst 32K [0x1c0000..0x1c8000] {0x3fe1209c000z0} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190519T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:46 32228.32232<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
2019-06-27 11:37:46 32228.32231<6> crawl_11471: dedup: src 32K [0x32000..0x3a000] {0x3fe12023000z12000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190627T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:46 32228.32231<6> crawl_11471:        dst 32K [0x1e0000..0x1e8000] {0x3fe1209d000z0} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190519T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
2019-06-27 11:37:47 32228.32232<6> crawl_11471: dedup: src 32K [0x32000..0x3a000] {0x3fe12023000z12000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190627T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32232<6> crawl_11471:        dst 32K [0x200000..0x208000] {0x3fe1209e000z0} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190519T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<6> crawl_11471: dedup: src 12K [0x32000..0x35000] {0x3fe12023000z12000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190627T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<6> crawl_11471:        dst 12K [0x27d000..0x280000] {0x3fe120bb000z1d000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190519T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
2019-06-27 11:37:47 32228.32232<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack
2019-06-27 11:37:47 32228.32231<6> crawl_11471: dedup: src 32K [0x32000..0x3a000] {0x3fe12023000z12000} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190627T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<6> crawl_11471:        dst 32K [0x280000..0x288000] {0x3fe120c8000z0} /run/bees/mnt/f021a039-87d6-4498-a0f5-6bbba3dfb1f1/volumes/var_db/var_db.20190519T0000/smokeping/bahnhof/cloudflare.rrd
2019-06-27 11:37:47 32228.32231<7> crawl_11471: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack

ghost avatar Jun 27 '19 09:06 ghost

This will get triggered a lot when the data consists of adjacent repeating blocks. These are not good candidates for dedupe with the existing algorithms, and they're also hard to fix with the existing code.

I plan to replace the code with a better algorithm (i.e. one that doesn't have this corner case). When that code is ready, this FIXME (and all the code surrounding it) will be removed.

Zygo avatar Jun 29 '19 02:06 Zygo

I too receive a lot of "bailing out here" exceptions:

2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20440<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20439<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20439<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20441<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20440<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20438<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack 2020-08-29 17:17:52 20424.20439<7> crawl_1455: exception (ignored): exception type std::runtime_error: FIXME: bailing out here, need to fix this further up the call stack

As dim-geo commented, I too get very nervous when exceptions arise in a program that in managing my data...

maicardi avatar Aug 29 '20 15:08 maicardi

Maybe also look here: https://github.com/Zygo/bees/issues/149 - it's harmless.

kakra avatar Aug 29 '20 16:08 kakra

Maybe also look here: #149 - it's harmless.

I've read it's harmless, nevertheless I am scared by exceptions :-D

I think output of Bees is too much complicated/technical and scaring for the average user.

maicardi avatar Aug 30 '20 07:08 maicardi