Spice work

Monday, April 24, 2017

I'm restarting the pending spice work.

Allocation of QRegion

Working on reducing allocation of QRegions. Passed make check. But at time of commit, I got a funny message:

ddd@muse[allocate-surfaces] server> git add dcc-private.h dcc-send.c dcc.c
fatal: Unable to create '/home/ddd/Work/spice/spice/.git/index.lock':
Read-only file system

Uh oh. Looking at dmesg:

[525761.195108] btree_readpage_end_io_hook: 2 callbacks suppressed
[525761.195114] BTRFS error (device sda4): bad tree block start 11022913622198796681 52432896
[525761.203698] BTRFS error (device sda4): bad tree block start 11022913622198796681 52432896
[525970.013112] ------------[ cut here ]------------
[525970.013138] WARNING: CPU: 5 PID: 471 at fs/btrfs/extent-tree.c:6938 __btrfs_free_extent.isra.58+0x7fd/0xe80 [btrfs]
[525970.013139] Modules linked in: macvtap macvlan xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_broute bridge stp llc ebtable_nat ip6table_mangle ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_security ip6table_raw iptable_mangle iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack libcrc32c iptable_security iptable_raw ebtable_filter ebtables ip6table_filter ip6_tables binfmt_misc fuse snd_hda_codec_hdmi snd_hda_intel snd_hda_codec snd_hda_core intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hwdep kvm_intel kvm snd_seq rc_imon_pad snd_seq_device imon snd_pcm
[525970.013199]  irqbypass crct10dif_pclmul crc32_pclmul iTCO_wdt ghash_clmulni_intel intel_cstate rc_core intel_uncore intel_rapl_perf joydev iTCO_vendor_support gpio_ich ppdev snd_timer tpm_infineon tpm_tis tpm_tis_core snd i2c_i801 soundcore mei_me mei tpm parport_pc parport shpchp lpc_ich nfsd auth_rpcgss nfs_acl lockd grace sunrpc btrfs xor raid6_pq nouveau i915 mxm_wmi wmi ttm video i2c_algo_bit drm_kms_helper drm crc32c_intel serio_raw r8169 mii fjes
[525970.013229] CPU: 5 PID: 471 Comm: btrfs-transacti Not tainted 4.10.6-200.fc25.x86_64 #1
[525970.013229] Hardware name: Gigabyte Technology Co., Ltd. Z68AP-D3/Z68AP-D3, BIOS F2 06/03/2011
[525970.013230] Call Trace:
[525970.013237]  dump_stack+0x63/0x86
[525970.013239]  __warn+0xcb/0xf0
[525970.013241]  warn_slowpath_null+0x1d/0x20
[525970.013256]  __btrfs_free_extent.isra.58+0x7fd/0xe80 [btrfs]
[525970.013272]  __btrfs_run_delayed_refs+0xae9/0x1320 [btrfs]
[525970.013275]  ? __switch_to+0x227/0x460
[525970.013290]  btrfs_run_delayed_refs+0x8f/0x2a0 [btrfs]
[525970.013308]  btrfs_commit_transaction+0x48/0x930 [btrfs]
[525970.013323]  ? start_transaction+0x99/0x460 [btrfs]
[525970.013339]  transaction_kthread+0x18c/0x1b0 [btrfs]
[525970.013342]  kthread+0x101/0x140
[525970.013357]  ? btrfs_cleanup_transaction+0x540/0x540 [btrfs]
[525970.013359]  ? kthread_park+0x90/0x90
[525970.013361]  ret_from_fork+0x2c/0x40
[525970.013363] ---[ end trace 0a5df83b37800c90 ]---
[525970.013367] BTRFS info (device sda4): leaf 232030208 total ptrs 183 free space 5669
[525970.013368] 	item 0 key (49397760 169 0) itemoff 16250 itemsize 33
[525970.013370] 		extent refs 1 gen 175 flags 2
[525970.013370] 		tree block backref root 7
[525970.013372] 	item 1 key (49414144 169 0) itemoff 16217 itemsize 33
[525970.013373] 		extent refs 1 gen 175 flags 2
[525970.013373] 		tree block backref root 7
[525970.013374] 	item 2 key (49430528 169 0) itemoff 16184 itemsize 33
[525970.013377] 		extent refs 1 gen 175 flags 2
[525970.013378] 		tree block backref root 7
[525970.013379] 	item 3 key (49446912 169 0) itemoff 16151 itemsize 33
[525970.013379] 		extent refs 1 gen 175 flags 2
[525970.013380] 		tree block backref root 7
[525970.013381] 	item 4 key (49463296 169 0) itemoff 16118 itemsize 33
[525970.013382] 		extent refs 1 gen 175 flags 2
[525970.013382] 		tree block backref root 7
[525970.013383] 	item 5 key (49479680 169 0) itemoff 16085 itemsize 33
[525970.013384] 		extent refs 1 gen 175 flags 2
[525970.013385] 		tree block backref root 7
[525970.013386] 	item 6 key (49496064 169 0) itemoff 16052 itemsize 33
[525970.013387] 		extent refs 1 gen 49842 flags 2
[525970.013387] 		tree block backref root 257

Copying everything over to another machine. I think it may be time to totally lose confidence in BTRFS... Filed Red Hat Bugzilla 1444821. Trying to run btrfsck from a USB key aborts with a core dump. This is probably similar to Red Hat Bugzilla 1435567.

About disks, another disks shows signs of failing in my home NAS. Ordered a new one with Amazon. I'm trying to spread the time they fail by not ordering all of them at the same time. Relaunched a backup of that NAS on Shuttle.

BTRFS check dumps core

Spent most of the rest of the day trying to babysit btrfsck so that it does not dump core. Rebuilt btrfs-progs-4.10.1-1.fc25.x86_64.rpm from sources, straight from Rawhide. I have slightly more messages before the core dump, but a core dump nonetheless. Messages are

enabling repair mode
Checking filesystem on /dev/sda4
UUID: 26a0c84c-d2ac-4da8-b880-684f2ea48a22
checking extents
ERROR: add_tree_backref failed: File exists
extent_io.c:143: insert_state: BUG_ON `end < start` triggered, value 1
btrfs check(+0x305a6)[0x556c478505a6]
btrfs check(+0x307fd)[0x556c478507fd]
btrfs check(set_extent_bits+0x256)[0x556c47850cc6]
btrfs check(+0x6329b)[0x556c4788329b]
btrfs check(cmd_check+0xb43)[0x556c47885143]
btrfs check(main+0x80)[0x556c47837c80]
/lib64/libc.so.6(__libc_start_main+0xf1)[0x7f4ed220a401]
btrfs check(_start+0x2a)[0x556c47837d8a]
Aborted (core dumped)

As an aside, it's slightly annoying to rebuild RPMs from source when you are on a live Fedora. A lot of standard filesystems are read-only (or turn read-only after you do some dnf install to have the required tools, I am not too sure. As a result, at the time of installation with rpm -i, you end up with a message telling you that it can't install because /var/log is on a read-only filesystem. /var/log, of all places!

Blogmax bug

For some reason, I'm currently triggering a bug in blogmax.el which causes the main index page to contain only {tt "{dayTemplate}"}.