Kernel panic due to memory corruption

This is what a kernel panic may look like when facing memory corruption.

kernel: panic: solaris assert: arc_buf_alloc_impl(hdr, private, compressed_read, 1, &buf) == 0 (0x5 == 0x0), file: /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c, line: 5318
kernel: cpuid = 1
kernel: KDB: stack backtrace:
kernel: db_trace_self_wrapper() at 0xffffffff8046b52b = db_trace_self_wrapper+0x2b/frame 0xfffffe0122681380
kernel: vpanic() at 0xffffffff806c5ba6 = vpanic+0x186/frame 0xfffffe0122681400
kernel: panic() at 0xffffffff806c5a13 = panic+0x43/frame 0xfffffe0122681460
kernel: assfail3() at 0xffffffff8030987c = assfail3+0x2c/frame 0xfffffe0122681480
kernel: arc_read() at 0xffffffff80322ddc = arc_read+0x83c/frame 0xfffffe0122681510
kernel: dbuf_read() at 0xffffffff8032e918 = dbuf_read+0x678/frame 0xfffffe01226815c0
kernel: dmu_buf_hold_array_by_dnode() at 0xffffffff80338bf3 = dmu_buf_hold_array_by_dnode+0x203/frame 0xfffffe0122681630
kernel: dmu_read_uio_dnode() at 0xffffffff8033a167 = dmu_read_uio_dnode+0x37/frame 0xfffffe01226816a0
kernel: dmu_read_uio_dbuf() at 0xffffffff8033a10b = dmu_read_uio_dbuf+0x3b/frame 0xfffffe01226816d0
kernel: zfs_freebsd_read() at 0xffffffff803d7e80 = zfs_freebsd_read+0x660/frame 0xfffffe0122681780
kernel: VOP_READ_APV() at 0xffffffff80a7b77c = VOP_READ_APV+0x7c/frame 0xfffffe01226817b0
kernel: vn_read() at 0xffffffff807a0815 = vn_read+0x195/frame 0xfffffe0122681830
kernel: vn_io_fault1() at 0xffffffff8079e4e9 = vn_io_fault1+0x169/frame 0xfffffe0122681970
kernel: vn_io_fault() at 0xffffffff8079c6ac = vn_io_fault+0x18c/frame 0xfffffe01226819e0
kernel: dofileread() at 0xffffffff807291aa = dofileread+0xba/frame 0xfffffe0122681a20
kernel: kern_readv() at 0xffffffff80728db8 = kern_readv+0x68/frame 0xfffffe0122681a70
kernel: sys_read() at 0xffffffff80728d46 = sys_read+0x86/frame 0xfffffe0122681ac0
kernel: amd64_syscall() at 0xffffffff809d5f18 = amd64_syscall+0xa38/frame 0xfffffe0122681bf0
kernel: fast_syscall_common() at 

Upgrading XenServer 7.1 to 7.3 via 7.2

It’s winter break, giving me time to bring systems down for their much needed maintenance. One of my tasks was to upgrade our XenServers. They’re not joined to the same pool for historical reasons. One of them is close to 8 years old, the other one is fairly new. For the first server I chose to reboot into the hypervisor after upgrading to 7.2, before upgrading to 7.3. A wise choice. Just for the fun of it, I chose not to reboot into the hypervisor on the second server between 7.2 and 7.3. This left me with the choice of restoring the old 7.1 version or performing a clean reinstall of 7.3. Neither option was inviting, so I had to reboot into the hypervisor prior to upgrading to 7.3. Lesson learned.

The irony of this story is that XenServer 7.4 was released two days ago. Luckily, I can use the new update feature and save me a trip to the server room.

Client for OES 2 SP4 IR7a on Windows 10 1709

While trying to log in on our Novell servers using Client for OES 2 SP4 IR7a on Windows 10 1709, I was greeted with:

A required network service has not started.
Please check your error log for details.

The third reply of this post gave me a clue, simply run setup.exe one more time and reboot.

Uninstallation of IR7a still gives me error 0x80070005. The Registry settings in HKEY_LOCAL_MACHINE\SOFTWARE\Novell was accessible to me as a regular user. Maybe the client’s uninstaller is complaining about rights in the filesystem.

iobit‘s uninstaller free saved the day.

I really wish for more specific error messages.

Addendum 2018-02-23

Running setup.exe or yourscript.cmd from an elevated Command Prompt window eliminated all my problems. Search for “Command Prompt” on the start menu and hold down Ctrl+Shift when you click on the menu item. Simply right-clicking on yourscript.cmd and selecting “Run as administrator” proved to be insufficient. Creating HKEY_LOCAL_MACHINE\SOFTWARE\Novell manually might also set things straight.

IPv6 RDNSS and DNSSL on Cisco IOS XE

The official documentation on Cisco IOS XE for Catalyst 4500E claims this is the syntax for specifying IPv6 RDNSS and DNSSL:

Switch(config)# interface Te1/1
Switch(config‑if)# ipv6 nd ra dns server 4::4
Switch(config‑if)# ipv6 nd ra dns search list

Using IOS XE 3.10.0E, the correct syntax for DNSSL is:

Switch(config)# interface Te1/1
Switch(config‑if)# ipv6 nd ra dns server 4::4
Switch(config‑if)# ipv6 nd ra dns‑search‑list domain

Sadly, the quality of Cisco’s documentation isn’t what it was back in 2006.

Error 0x800F081F while installing .NET Framework 3.5 on Windows 10

Error 0x800F081F while installing .NET Framework 3.5 on Windows 10 might be due to corporate WSUS servers not allowing such updates.

Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU in the Windows registry and set UseWUServer to 0 (zero). Restart the Windows Update service (net stop wuauserv & net start wuauserv) and retry installing .NET Framework 3.5. Set UseWUServer back to 1 (one) and restart the Windows Update service.

Star Trek Online and InstallLocation

I keep Star Trek Online installed in two separate directories. One of the copies is simply a backup which I update but never play, while the other is for playing.

Keeping these two copies updated got a bit messy after the STO launcher began recording the InstallLocation in the Windows registry.

Subsequently, I have to remove this value from the registry prior to launching the game from another location.

@echo off
reg delete "HKEY_CURRENT_USER\Software\Cryptic\Star Trek Online" /v "InstallLocation" /f

Yet another technical oriented blog, more or less