Notes

Problem: Pinging a remote host (as root) gives EPERM (operation not permitted), but only randomly—some packets go through, others don't.
Cause: The netfilter conntrack table is full. Netfilter appears to drop packets when the table becomes full, and packets sent from the local host slated for dropping are rejected at the syscall level with EPERM.
Solution: Increase /proc/sys/net/ipv4/netfilter/ip_conntrack_max, or use the NOTRACK filter rule (in the raw table) to designate some packets to not be tracked.

Problem: After setting up Linux on a new machine, booting from the hard disk (rather than the rescue DVD used for setup) resulted in "Warning: Unable to open an initial console" when booting.
Cause: The disk (40GB) was being accessed via CHS rather than LBA addressing, causing high sector numbers to wrap around to the beginning of the disk; this was the result of the BIOS misdetecting(?) the drive's capabilities and forcing CHS mode when booting from it.
Analysis: Traditionally, the "Unable to open an initial console" error is the result of missing /dev entries (specifically /dev/console). In this case, however, I had made certain /dev was set up correctly before trying to boot off the hard disk. Adding an errno display to the error message showed that open("/dev/console") was failing with EIO; instrumentation of the open() code path revealed that the ext3fs code was marking the /dev inode bad (with make_bad_inode()) because the inode it read in from disk was all zeroes. This occurred with both the kernel installed on the disk as well as a copy of the kernel from the rescue DVD, but did not show up when the hard disk was booted directly from the DVD (using root=/dev/hdc1 on the LILO command line; on this machine, the CD/DVD drive was /dev/hda and the HDD was /dev/hdc). After making certain that the sector numbers were correct, I did some tests, revealing that sectors near the end of the disk were being mapped to their counterparts 66060288 (0x3F00000) sectors earlier, near the beginning of the disk. I instrumented the block device I/O code, and found that the IDE I/O routine (drivers/ide/ide-disk.c:__ide_do_rw_disk()) was using CHS mode to access the device. The drive was configured for 16 heads and 63 sectors, so the 16-bit cylinder value overflowed at 65536*16*63 = 0x3F00000 sectors, causing accesses to later sectors to be redirected to earlier ones. (The kernel did not display any error message on cylinder overflow.) Nothing in the boot sequence suggested that Linux was having problems detecting the drive, but the reported capacity (CHS 16383/16/63) suggested the BIOS as the source of the problem, since those values are used for all current high-capacity drives.
Solution: Changing the HDD access mode in the BIOS from Auto to LBA fixed the problem.

Problem: While working on a multi-threaded application (transcode), the program suddenly started terminating with SIGKILL during execution. No messages were written to the system log.
Cause: When one thread of a multi-threaded application receives a signal that would cause it to abort and dump core, the Linux kernel kills all other threads with SIGKILL; see zap_threads() in fs/exec.c.

Problem: Trying to compile a project in Microsoft Visual C++ resulted in a "fatal error C1001: INTERNAL COMPILER ERROR (compiler file `f:\vs70builds\3077\vc\Compiler\Utc\src\P2\p2symtab.c', line 1609)" on one source file; attempting to recompile that source file or compile other source files then resulted in "fatal error C1001: INTERNAL COMPILER ERROR (compiler file `msc1.cpp', line 2701)".
Solution: Disabling the use of precompiled headers (Project → Properties → C/C++ → Precompiled headers) avoided the problem. According to this blog, Visual C++ doesn't work properly when the project is located on a network drive hosted by Samba.

Problem: When playing back a DVD mastered with transcode and dvdauthor on a PlayStation 2 (model SCPH-18000), the sound slowly became out of sync with the video, running about 1 part in 50,000 fast.
Solution: Using the DVD player version 2.01 (distributed on the HDD utility disc) rather than the built-in player (version 1.??) made the problem go away; apparently this is a bug in the old player.

Problem: When trying to download updates for Windows 2000, Windows Update (and Microsoft Update) hanged when checking for updates; the "busy" indicator scrolled continuously, but no progress was made.
Solution: As described here, using Dr. TCP to set the TCP receive window to 13900 and MTUs to 1430 fixed the problem. It is also necessary to have the BITS (Background Intelligent Transfer Service) service started.

Problem: When creating a DVD with dvdauthor version 0.6.11, dvdauthor reported "WARN: Video PTS does not line up on a multiple of a field." after reading/copying the source VOB file, then reported a video PTS range of (almost) exactly half the proper value. dvdauthor subsequently aborted with "ERR: Cannot jump to chapter 40 of title 1, only 39 exist" when processing the menu, presumably because of the shortened video PTS.
Analysis: Inserting a debug printf() in the calcpts() function in dvdvob.c revealed that the PTS computation was resulting in negative values when the base PTS passed 230.
Solution: Changing the type of the fpts local variable from int to pts_t solved the problem: --- src/dvdvob.c.old 2005-02-11 05:47:32 +0900 +++ src/dvdvob.c 2006-01-19 13:39:06 +0900 @@ -58,7 +58,7 @@ // I assume pts should round down? That seems to be how mplex deals with it // also see later comment - int fpts=getframepts(va); + pts_t fpts=getframepts(va); int bpframe=(basepts*2-*align+fpts/2)/fpts; if( (*align+bpframe*fpts)/2 != basepts ) { if( !*didcomplain ) {

Problem: When attempting to draw a line in the Gimp image editor, the line suddenly flipped to the opposite side (vertically) of the start point as it was being extended downward.
Analysis: This was reported as a bug on the Gimp bug tracker, but was closed as INVALID for purportedly being an X server bug. This does in fact seem to be the case, as viewing the Intel Pentium IV reference manual (Instruction Set A-M) causes the same problem in the section index pane when scrolling down through the instruction list: part of the way down, the line that should be connecting all of the instruction name branches suddenly flips up to the top of the pane.

Problem: Despite having a .autoreg file in the Mozilla home directory, an extension added to the components folder was not loaded.
Solution: The .autoreg file has to be touched after the extension is added (or possibly after the last time Mozilla was started?) for it to be recognized.

Problem: While developing a JavaScript-implemented protocol for Mozilla, the browser started crashing with a segmentation fault.
Cause: The core code was attempting to access the URI member of the nsIChannel interface without checking that the result of channel->GetURI() was non-null. The URI member was null because of an error in the object initialization JavaScript code: the code read URI = URI_in; instead of the correct this.URI = URI_in;

Problem: While developing the above-mentioned Mozilla protocol, the browser refused to treat <a href="relative-URI"> as a link.
Solution: Use nsIStandardURL instead of nsISimpleURI.

Problem: Can't turn off autocomplete in OpenOffice.org Calc.
Solution: It has a different name: Tools → Cell Contents → AutoInput

Problem: modprobe powernow-k8 (AMD Athlon Cool'n'Quiet module for Linux) gives "MP systems not supported by PSB BIOS structure" on an AMD Athlon 64 X2 system with an Asus A8R-MVP motherboard (BIOS revision 0402).
Cause: The motherboard's BIOS does not include the proper ACPI tables for CPU power control.
Solution: As described at http://wejp.k.vu/projects/howto_cnq_athlon_64_x2/, Linux can be configured to load the DSDT from a file rather than the BIOS, allowing the proper tables to be added. Naturally this requires a copy of the particular BIOS's DSDT, as well as the iasl tool (from Intel: http://www.intel.com/technology/iapc/acpi/downloads.htm) for converting between the DSDT data format (AmlCode) and source code. The sequence of operations to modify the DSDT is:

  1. cat /proc/acpi/dsdt >dsdt.aml
  2. iasl -d dsdt.aml (creates dsdt.dml)
  3. Insert the appropriate tables in dsdt.dml
  4. iasl -tc dsdt.dml (overwrites dsdt.aml, and creates dsdt.hex)
  5. In the Linux kernel configuration, select
        Power management optionsACPI SupportInclude Custom DSDT
    and specify the full path to the dsdt.hex file (not the dsdt.aml file). Note that
        Device DriversGeneric Driver OptionsSelect only drivers that don't need compile-time external firmware
    (the STANDALONE define) must be unselected, which in turn requires
        Code maturity level optionsPrompt for development and/or incomplete code/drivers
    to be selected.
  6. Recompile the kernel.

It may be necessary to make additional changes to the DSDT for compilation to succeed; in the particular case of the A8R-MVP rev. 0402, the definition of the \_SB.PCI0 scope had to be moved above the methods which accessed it, and an erroneous Return() around a While block in method WFZF had to be removed.

The specific text added at the beginning of the \_PR scope to the DSDT source code is as follows (for an Athlon 64 X2 4400+ processor). As mentioned in the comments, specific frequency and voltage values will be different for each processor; proper values can be obtained from AMD document #30430 (AMD Athlon(tm) 64 Processor Power and Thermal Data Sheet, see AMD technical documentation list) by checking the CPU's OPN or CPUID values. // From the AMD BIOS and Kernel Developer's Guide for // the AMD Athlon 64(tm) and AMD Opteron(tm) Processors // (#26094), Rev 3.30 (February 2006), sections 9.6.1 // and 9.6.2. The data here is correct for OPN // ADA4400DAA6CD (Athlon 64 X2 4400+). Processor (CPU0, 0x00, 0x00000000, 0x00) { Name (_PCT, Package(2) { // Control // ResourceTemplate () {Register(FFixedHW,0,0,0)}, Buffer () { 0x82, // B0 Generic Register Descriptor 0x0C,0, // B1:2 Length 0x7F, // B3 Address space ID (SystemIO) 0, // B4 Register Bit Width 0, // B5 Register Bit Offset 0, // B6 Reserved (MBZ) 0,0,0,0,0,0,0,0, // B7:14 Register address 0x79,0 // B15:16 End Tag }, // Status // ResourceTemplate () {Register(FFixedHW,0,0,0)}, Buffer () { 0x82, // B0 Generic Register Descriptor 0x0C,0, // B1:2 Length 0x7F, // B3 Address space ID (SystemIO) 0, // B4 Register Bit Width 0, // B5 Register Bit Offset 0, // B6 Reserved (MBZ) 0,0,0,0,0,0,0,0, // B7:14 Register address 0x79,0 // B15:16 End Tag }, }) // end _PCT Name (_PSS, Package (4) // 4: number of P-states { // TransitionLatency and BusMasterLatency are // fixed estimates as in 9.6.2. Control[31:11] // is fixed at 0xE0202800 per 9.6.2.1 ("BIOS // default" and "required" settings); // Control[10:0] and Status are always equal // to VID<<6 | FID. // P0: 2200 MHz (FID 0x0E), 1.350V (VID 0x08) // Note that P0 voltage can vary by processor! // (check MaxVID: FIDVID_Status[52:48]) Package (0x06) { 0x0898, // CoreFreq: 2200 MHz 0x0001ADB0, // Power (110.0W) 0x64, // TransitionLatency: 100us 0x07, // BusMasterLatency: 7us 0xE0202A0E, // Control 0x020E // Status }, // P1: 2000 MHz (FID 0x0C), 1.300V (VID 0x0A) Package (0x06) { 0x07D0, // CoreFreq: 2000 MHz 0x00019C80, // Power (105.6W) 0x64, // TransitionLatency: 100us 0x07, // BusMasterLatency: 7us 0xE0202A8C, // Control 0x028C // Status }, // P2: 1800 MHz (FID 0x0A), 1.250V (VID 0x0C) Package (0x06) { 0x0708, // CoreFreq: 1800 MHz 0x00015C0C, // Power (89.1W) 0x64, // TransitionLatency: 100us 0x07, // BusMasterLatency: 7us 0xE0202B0A, // Control 0x030A // Status }, // Pmin: 1000 MHz (FID 0x02), 1.100V (VID 0x12) Package (0x06) { 0x03E8, // CoreFreq: 1000 MHz 0x0000BF68, // Power (49.0W) 0x64, // TransitionLatency: 100us 0x07, // BusMasterLatency: 7us 0xE0202C82, // Control 0x0482 // Status } }) // end _PSS }

Problem: A Davicom Semiconducter, Inc. 10/100 Ethernet card (PCI 1282:9102) works for exactly one minute (60 seconds) after plugging in an Ethernet cable, after which no data is received. Unplugging and replugging the cable allows the card to function for another 60 seconds. Unloading and reloading the driver module with an immediate ifconfig; ping allows three ping packets to get through (with latencies of ~2s, ~1s, and ~60ms). The system in use is Fedora Core 5, kernel 2.6.15-1.2054_FC5, with version 1.1.13 of the tulip driver.
Cause: This appears to be an issue with the tulip driver, as reported at http://www.ubuntuforums.org/showthread.php?t=184152.
Solution: Use the dmfe driver instead of the tulip driver. On systems with automatic module loading, this requires blacklisting the tulip module in a system-dependent way (for Fedora Core 5, add "blacklist tulip" to /etc/modprobe.d/blacklist).

Problem: Attempting to play audio through SDL using the ALSA driver results in a noticeable lag, no matter how small the SDL audio buffer is set.
Cause: Seems to be the result of SDL sending data through the ALSA "dmix" device, which by default uses a buffer of 16*1024 samples.
Solution: Copy /usr/share/alsa/pcm/dmix.conf into ~/.asoundrc, and modify the values under pcm.!dmix.slave.pcm.period_size and pcm.!dmix.slave.pcm.periods appropriately.

Problem: Attempting to compile C source code containing UTF-8 Japanese characters in comments, using Visual C++ 2005, gives "Warning C4819" followed by errors with line numbers that do not correspond to the actual source code.
Cause: Initial versions of the C compiler distributed with Visual Studio 2005 (including that as of 2007/1/25 with Service Pack 1 and the KB912790 hotfix installed) appears to improperly process such files, treating them as Shift-JIS files. As a result, any inline comment (// comment) ending with an odd number of full-width characters may cause the compiler to ignore the following byte, since full-width characters are 3 bytes in UTF-8 but 2 bytes in Shift-JIS. If this byte is an LF, as for Unix line breaks, the subsequent line is treated as part of the same line, and therefore ignored as part of a comment.
Workaround: Use CR/LF instead of LF for line breaks, add extra whitespace after problem-causing comments, or change such comments to C-style /* */ comments.

Problem: The X.org X server (version 6.8.1) crashes consistently when performing certain operations in some applications.
Cause: A misaligned floating-point data value was used with an SSE2 instruction, causing a segmentation fault (see bug 1390 on the X.org bug tracker).
Root cause: Apparently a bug in the GCC code generator.
Workaround: Compile with -mno-sse2.

Problem: Attempting to configure the jabberd server (version 2.0s11) to use an SSL certificate fails, with debug messages reporting "private key does not match certificate public key". The PEM file containing the server certificate is readable by the server, and includes both signed certificate and private key.
Cause: Since a CA chain (actually just a single CA certificate) was also given in the c2s configuration file, jabberd was loading that as well; however, it loaded the CA chain after the server key, which resulted in the server key being deleted from the SSL context (it's unclear whether this is a bug in jabberd or OpenSSL).
Solution: Edit sx/ssl.c in the jabberd source, moving the SSL_CTX_use_certificate_chain_file() call immediately after the SSL_CTX_new() call (before the server certificate is loaded with SSL_CTX_use_certificate_file()).

Problem: Attempting ls /proc/NNN/fd on the process dd </dev/zero >/dev/sde1 reported "ls: memory exhausted".
Analysis: A subsequent attempt to ls /proc/NNN/fd/1 gave a file position of exactly 4GB. Could there be an issue with file sizes just under the 4GB limit? // No, it also occurs with other values like 0x1C68000000 and 0x1CB8000000. "stat" seems to work even when "ls" doesn't.

Problem: Attempting a mysqldump on an InnoDB database whose shared tablespace file contained bad sectors caused the dump to be aborted when the bad sector was reached. Attempting to delete the affected row using the command-line client likewise caused the connection to be dropped by the server.
Analysis: Viewing the binary logs created by the server revealed that several log files had been created in quick succession, and the logs corresponding to the attempts to access the troubled row were not closed properly. Apparently either InnoDB or the MySQL server itself is unable to handle an I/O error reading from a table, and crashes.

Problem: Attempting to use Emacs in Unicode (UTF-8) mode resulted in all Japanese characters being output as U+FFFD, while no problems were seen in EUC-JP (japanese-iso-2022-8bit) mode.
Solution: Call set-terminal-coding-system after loading un-define.el from Mule-UCS.

Problem: Attempting to connect to a Jabber server using STARTTLS with Gaim (1.5 and 2.0beta5) caused the connection to hang, with c2s.log containing entries reading "error: SSL handshake error (error:140B512D:SSL routines:SSL_GET_NEW_SESSION:ssl session id callback failed)". Connecting without SSL works fine.
Cause: OpenSSL was unable to access a random-data source such as /dev/urandom (due to the process running in a chrooted environment with minimal /dev entries).
Solution: mknod /usr/local/jabberd/dev/urandom c 1 9

Problem: Pressing the "_ \ ¦ ろ" key on a Japanese 106-key keyboard does nothing in Xorg.
Workaround: Add the following line to .xinitrc: xmodmap -e 'keycode 211 = backslash underscore'

Problem: After moving a MySQL/InnoDB database to a new machine, attempting to access tables in the database resulted in "table doesn't exist" errors, even though SHOW TABLES listed the tables.
Analysis: The MySQL daemon error log reported: [ERROR] Cannot find table table-name from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but have forgotten to delete the corresponding .frm files of InnoDB tables, or you have moved .frm files to another database? The daemon was also creating ibdata and iblogfile files in the top directory, even though the files were actually located in the mysql/ subdirectory.
Cause: The my.cnf on the new machine had the wrong path listed for innodb_data_home_dir, innodb_log_group_home_dir, and innodb_log_arch_dir.

Problem: Attempting to blit a rectangular image to a Direct3D 9 device using two triangles defined with XYZRHW coordinates resulted in the lower-right triangle being drawn with reduced resolution.
Analysis: Possibly the result of the renderer drawing the texture at a nonzero mipmap level, though the texture was created with 1 level and the mipmap filter was disabled. This may be the result of overenthusiastic optimization in the DirectX library, since adjusting the U/V coordinates of the vertices so that they are not exactly 0.0 or 1.0 (see the next problem) also eliminates the problem.
Workaround: Rearranging the vertices so that both triangles contained the point (0,0) made the problem go away.

Problem: Attempting to blit an image to a Direct3D 9 device resulted in the image being shifted right and down one pixel within the blit region, with the top row and left column of the image duplicated.
Cause: Apparently due to the Direct3D engine truncating rather than rounding texture coordinates when the sampler is set to D3DTEXF_POINT mode.
Workaround: Add 0.1/width to the U coordinate and 0.1/height to the V coordinate of each vertex.

Problem: After replacing a custom-built X.org X server and NVIDIA video drivers with ones compiled via Gentoo's Portage system, attempting to start the X server with the GLX module loaded caused the server to segfault in realloc() immediately after loading that module.
Workaround: Replacing the two (tls and no-tls) versions of libnvidia-tls.so.1 with those from the independently compiled version resolved the problem.

Problem: When attempting to install GIMP via Gentoo, the build process failed with: "failed to load "./cursor-bad.png": Couldn't recognize the image file format for file './cursor-bad.png'".
Cause: /etc/gtk-2.0/gdk-pixbuf.loaders was empty, due to an installation-time dynamic linking failure of gdk-pixbuf-query-loaders.

Problem: Trying to install the GRUB bootloader on a system where the /boot directory was located on a software RAID1 partition (/dev/md0) gave the error "/dev/md0 does not have any corresponding BIOS drive", and GRUB refused to install.
Solution: Temporarily edit /etc/mtab to replace the relevant pseudo-device (e.g. /dev/md0) with the corresponding physical device (e.g. /dev/sda1), run GRUB, then revert /etc/mtab to its original contents.

Problem: Upon loading certain files created with Microsoft Office, OpenOffice.org 2.3.1 (binary release) gets stuck in an endless loop of crashing, attempting to recover previously open files, and crashing again. When started from a shell, the program reports a "berkeleydbproxy::DbException" error.
Workaround: Delete all *.db files in the ~/.ooo-2.0 directory hierarchy.

Problem: Attempting to install VMware Workstation 6.0.2 via Gentoo's Portage system resulted in an undefined symbol error for a C++ symbol when starting the program.
Solution: Re-emerge libview. (The problem was caused by compiling libview after gtkmm had been compiled with USE=-accessibility; apparently libview adds extra features when gtkmm is built with the accessibility flag enabled, and VMware depends on these features.)

Problem: When using a USB mouse with X.org 7.2, the pointer moves too quickly (in 2-pixel increments), and is unaffected by the xset m command.
Solution: In xorg.conf, change the line in the mouse's InputDevice section reading: Option "SendCoreEvents" "true" to: Option "CorePointer"

Problem: When trying to use VMware Workstation 6.0.4 on a Gentoo Linux system with D-Bus 1.1.20 installed, running the "vmware" command reports an error from the D-Bus library and returns to the command line without doing anything else.
Solution: DBUS_FATAL_WARNINGS=0 vmware

Problem: Programs compiled under MinGW (gcc-3.4.2) fail to retrieve their command-line arguments when run from /bin in the standard MinGW shell (rxvt), always reporting argc == 1 regardless of what arguments may have been given on the command line. The same executable works normally when placed in a different directory (e.g. / or /bun), but will not work from /bin regardless of filename or whether an absolute or relative path was used to invoke the program.
Cause/Solution: Unknown. (Perhaps rxvt is using the wrong Windows facilities to run the programs? ipconfig.exe also fails to get command line arguments when run from rxvt.)

Problem: Attempting to configure atk-1.22.0 with MinGW failed, with an "undefined reference to `CoTaskMemFree@4'" compilation error reported in the configure log.
Solution: Add -lole32 to the library list in /usr/lib/pkgconfig/glib-2.0.pc.

Problem: Attempting to boot Linux 2.6.25 (Gentoo package gentoo-sources-2.6.25-r8) using GRUB 0.97 (Gentoo package grub-0.97-r5) sporadically fails, complaining that the root filesystem is inaccessible.
Cause: The boot command line is not null-terminated when the kernel receives it (as indicated by the "Kernel command line:" message in the kernel log). If the "root=" parameter is the last on the command line, the root device can thus be misinterpreted if the next byte in memory has a value other than zero.
Workaround: Add a space to the end of the command line. The bug may be fixed in grub-0.97-r6 (not yet confirmed).

Problem: The OpenOffice.org interface looks ugly.
Solution: export OOO_FORCE_DESKTOP=gnome

Problem: On startup, VMware Workstation 6.5.0 reports incorrectly that kernel modules need to be recompiled.
Cause: Workstation attempts to check module information via the modinfo program, but does so as the user running the program, not as root; so if the module database (/lib/modules/*/modules.dep) is protected, the program will be unable to obtain the module information and assume the modules must be recompiled.
Workaround: On Gentoo: chgrp vmware /sbin/modinfo; chmod 4710 /sbin/modinfo

Problem: The iTunes store arrow links in iTunes 8 cannot be disabled via preferences.
Solution: In MacOS X: defaults write com.apple.iTunes show-store-arrow-links -bool FALSE (from here).

Problem: When dynamically adding widgets to a GtkVBox inside a GtkHBox, the widgets are shown normally if the GtkHBox is a GtkNotebook page, but their sizes are all forced to 1x1 pixel if the GtkHBox is inside a GtkScrolledWindow/GtkViewport pair.
Analysis: In the GtkScrolledWindow case, the widgets' size_request() method is not called before their locations and sizes are set with size_allocate().
Workaround: Call gtk_widget_size_request() on the GtkHBox immediately after calling gtk_widget_show() on each new widget. (Pass a dummy GtkRequisition buffer to the function; the values returned are unimportant, but the call will trigger a size_request() on all child widgets.)

Problem: Windows XP SP3 displays a security warning whenever a program is run.
Solution: Add the following key to the registry: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Associations] "LowRiskFileTypes"=".exe;.com;(other file types)"

Problem: When using Windows XP as installed from the downgrade disc included with a new Toshiba Dynabook SS RX2/T7G laptop, part or all of the display wavers (rapidly shifting left or right by 1-2 pixels) when AC power is disconnected.
Solution: Upgrade the Intel graphics driver using the latest Mobile Intel 4 Series Express Chipset Family driver from Intel's website. (The setup program will refuse to run, but the driver can be installed directly from the extracted files using the standard Windows driver upgrade procedure. Make sure to leave the error message onscreen so the setup program doesn't delete the extracted files.)

Problem: When using Mozilla Seamonkey 1.1 with GTK+ 2.14 (and possibly other versions), web page display elements such as text and images may shift position by a pixel, and scanlines may be deleted or replicated when scrolling the page vertically using the mouse wheel (with smooth scrolling off).
Workaround: Force the X display to 96dpi in xorg.conf; see e.g.
    https://bugzilla.redhat.com/show_bug.cgi?id=387561
    https://bugzilla.mozilla.org/show_bug.cgi?id=20802

Problem: Sane settings for SeaMonkey mail (Thunderbird)?
Solution: (See also http://kb.mozillazine.org/Mail_content_types and http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird)

問題:I・O DATAのHDDレコーダー「Rec-POT HVR-HD250R」からパナソニックのブルーレイレコーダー「ディーガ (DIGA) DMR-BW750-K」に録画済みの番組を移したい。
手順:このサイトを参考にした。)

  1. ディーガの「初期設定」メニューで、i.LINKモードを「TS (1)」に設定する。
  2. Rec-POTの電源スイッチを切って、背面のモードスイッチを「D-VHS」側に設定する。
  3. i.LINKケーブルで、Rec-POTをディーガと、i.LINK端子のあるチューナーやテレビの双方に繋げる(ディーガ ←(i.LINK)→ Rec-POT ←(i.LINK)→ チューナー・テレビ、のようになる)。ここではソニー製チューナーのDST-TX1を使用。
  4. Rec-POTの電源を入れる。
  5. DST-TX1リモコンの「i.LINK」ボタンを押し、「i.LINK Studio」メニューを表示する。
  6. 画面の「機器選択」ボタンを選択して、一覧からRec-POT(I・O DATA HVR-HD250R)を選択する。(ディーガも表示されるが、こちらは選択しない。)i.LINK Studioメニューに戻るので、接続状態を確認する。
  7. Rec-POTのリモコンで「接続機器」ボタンを押す。チューナーの画面にRec-POTメニューが表示される。
  8. 以降はRec-POTの取扱説明書に従う。(ディーガを出力機器に選択し、設定メニューでプログラムモードを「移動」に設定し、プログラム画面で移動する番組をマークして決定ボタンを押す。)
移動には再生と同じだけの時間がかかり、その間は各機器を操作してはならない。また複数の番組を移すには、一つずつ選択して移動しなければならない。(Rec-POTのプログラム画面で複数の番組をマークすると、ディーガ側で一つの番組として録画される。)
なお、番組の途中で音声形式が切り替わる場合(サラウンド→ステレオなど)、ディーガで再生すると切り替わり時点で画面が数秒間停止してしまう。これはRec-POT側の録画における不具合と思われ、Rec-POTで再生しても、映像は停止しないが音声が途切れてしまう。

Problem: The mplex program from the mjpegtools package reports "file unrecogniseable" when given a PCM file as input.
Solution: Rename the file to have an extension of ".lpcm". Also note that the audio data must be in big-endian format, not little-endian.

Problem: Attempting to uninstall Visual C++ 2005 Express Edition fails with the message: "Setup is unable to determine a valid ordering for the installation. See the error log for further details." The error log (located in the user temporary folder, %TEMP%) contains the message: "Dependency Manager: [2] CDependencyManager::ValidateDependencyStates() : Parental dependency is not satisfied for component &Graphical IDE. Parent dependencies can't be in removing mode."
Workaround: (from this forum thread) Install a new component, then uninstall the entire program.

Problem: There don't seem to be any good, comprehensive comparisons of graphics card power consumption.
Cause: Unknown, but possibly because people who are interested in the details of graphics card performance don't care about saving energy.
Analysis: The NVIDIA GeForce 9500 GT uses roughly the same amount of power as the 6600 GT when idle (system consumption 76-77W and 75-77W respectively), but significantly less than the 6600 (90W vs. 125W) on 3D loads that saturated the 6600's processing capability.

問題:ATOKX3のCtrl+Space割り当てを無効化できない(Shift+Spaceに変更することだけ可能)。このため、OpenOfficeなど他のプログラムでCtrl+SpaceまたはShift+Spaceが使えない。
解決方法:このサイトから)/usr/bin/iiimdおよび/usr/lib/iiim/iiim-xbeをバイナリエディタで開いて「Zenkaku_Hankaku」をサーチし、その文字列の先頭から「<Ctrl>space,」「<Shift>space,」(iiim-xbeでは最後のカンマがスペースとなる)を削除する。「Zenkaku_Hankaku」と次の文字列の間はヌルバイトで埋める。

Problem: The Gentoo vmware-modules-1.0.0.25 package failed to build with the following errors: include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory include/linux/mmzone.h:251:5: warning: "MAX_NR_ZONES" is not defined [...] Solution: Run make prepare in the Linux source directory to create the include/linux/bounds.h file.

Problem: When running Windows 2000 under VMware Workstation 6.5.3 on a Linux (Gentoo) host, moving the mouse outside a roughly 640x480 region in the guest window causes the auto-grab functionality to ungrab the mouse, making it nearly impossible to manipulate anything outside of that region.
Workaround: export VMWARE_USE_SHIPPED_GTK=force (from here and here).

Problem: The blue "DPI" LED on recent (2009) Buffalo mice is distracting because it's always on except when switching DPI.
Solution: Cut JP8 (image).

Problem: Running umount /mountpoint fails with "Device or resource busy", but lsof doesn't show any processes using files on the corresponding device.
Possible cause: A file on the filesystem may be mounted as a loop device.

Problem: Nobody can seem to agree on what order to use for channels in a 5.1 PCM audio stream.
Analysis: FFmpeg (r21602) outputs FrontLeft-FrontRight-Center-LFE-RearLeft-RearRight for 5.1 AAC and AC3.

Problem: Piping a 48000Hz/2ch/16bit PCM stream through aplay results in playback looping on a roughly 0.2-second piece of audio after slightly less than 6 hours, 13 minutes of continuous playback. (Reported as ALSA bug 5190 [2016-11-09: link appears to be dead].)
Analysis: (1) 0.2 seconds of audio = 38400 bytes, so this may be a single 32k buffer looping continuously. (2) 6hr 13min = 22380sec, 22380sec * 48000 samples/sec * 4 bytes/sample = 4296960000 bytes (232 bytes = 6hr 12min 49.6sec), so there may be a 32-bit counter overflowing somewhere. (3) Using /dev/dsp at 44100/2/16, audio output stopped after about 3hr 23min = 12180sec; 12180 * 44100 * 4 = 2148552000, i.e. a 231 problem. Setting xrun_debug to 3 does not produce any debug output at that point, but the vplay process seems to terminate (rather than hanging).
Source code analysis: Each PCM stream has a sample counter (runtime->hw_ptr) which runs from 0 to a boundary value calculated at pcm_native.c:445 (Linux 2.6.33) as the largest power-of-two multiple of the boundary size which is less than LONG_MAX minus the buffer size; on a 32-bit machine, if the buffer size is a power of two, this will naturally lead to a boundary value of 0x40000000 (230) samples, exactly the point at which the aplay bug occurred. However, setting the boundary size to a smaller value (0x10000, 0x40000, 0x100000, or even 0x10000000) did not trigger the bug; audio continued playing smoothly, and xrun_debug=31 output showed the various hardware counters properly rolling over to zero at the boundary point.
Workaround: Change LONG_MAX to LONG_MAX/4 in the condition for the while loop that sets runtime->boundary in sound/core/pcm_native.c (line 445 in Linux 2.6.33). Doesn't work!
Further analysis: Assuming this is a library (alsa-lib) issue, the 0.2-second loop time matches the pcm->buffer_size value for this configuration (8192 samples). An strace capture indicates that snd_pcm_softvol_write_areas() is being called continuously during the looping playback (confirmed by calls to ioctl(SNDRV_CTL_IOCTL_ELEM_READ)); further, when the looping audio changes (about once every 18 seconds), a huge amount of audio (enough to cover the interval between changes) is read in at once. Since the relevant counter variables in aplay.c are of type off64_t and thus should not overflow, this suggests snd_pcm_writei() is effectively stalling for extended periods of time without disrupting the actual number of audio frames received or played. Debug output indicates that the internal function snd_pcm_wait_nocheck() is looping over poll() calls, with the dmix driver ignoring the POLLIN result most of the time.
Cause: The rate plugin does not calculate the boundary value properly; the boundary value is calculated using the buffer size in snd_pcm_rate_sw_params(), but the pointer is advanced in units of the period size. Depending on the ratio of sampling rates or of period to buffer size, this can result in resulting in a modulo excess when checking available space at the point of wraparound. For example, when converting 44.1kHz to 48kHz with a period size of 1024 samples and a buffer size of 8192 samples (as in the case of aplay), the computed boundary value is 6 parts in 7520 (7526/(8*940)) greater than the actual wraparound point. The boundary value is set based on LONG_MAX, so on 32-bit systems (where this is 231-1), the base boundary value is 230 samples; after that number of samples have been played, the rate plugin will attempt to insert 6*(230/8192) = 786432 samples, or about 17.4 seconds, worth of audio when there is in fact no such free space in the lower-level modules' buffers.
Solution: Change buffer_size to period_size in the following lines of the snd_pcm_rate_sw_params() function (lines 384 and 385 of pcm_rate.c in alsa-lib-1.0.23): boundary1 = pcm->buffer_size; boundary2 = slave->buffer_size;

Problem: When using libglade to create a GTK+ user interface, libglade reports symbol resolution errors for signal callbacks despite the callbacks being declared extern.
Solution: Pass -export-dynamic to the linker.

Problem: When trying to donate to a website through PayPal, the interface changes to Japanese as soon as "Japan" is selected from the country list and does not include a "change language" button to use English instead.
Workaround: Visit the PayPal home page (www.paypal.com); a CSS popup will allow you to select the country (Japan) and language (English). Then click the site's "donate" button to open the PayPal payment page, and the language should remain English even after selecting Japan as the country. (This no longer seems to work as of August 2013.)

Problem: Running "reset vsh" in PSPlink from the unofficial PSP SDK crashes when run on a PSP-2000.
Solution: Use a 32MB (PSP-1000) build of PSPlink instead.

Problem: Using the "-aid N" option to MPlayer with an MPEG TS file sometimes causes the first second or so of video to be dropped.
Cause: When a stream ID is specified on the command line, MPlayer starts decoding from the point in the file at which that stream was first found, even if other streams used in playback start earlier in the file.
Workaround: Explicitly specify the video stream with "-vid N".

Problem: During a Gentoo Linux system update, attempting to install dev-perl/IO-Socket-SSL-1.390.0 gave the error: "You need the XS Version of Scalar::Util for dualvar() support".
Workaround: Reinstall perl-core/Scalar-List-Utils (as suggested here).

Problem: After changing an Xcode 3.2.6 iOS project target from "iPad" to "iPhone/iPad", Xcode still refused to run a program on a properly provisioned iPod, reporting "no provisioned iOS device is connected".
Cause: PEBKAC: The target was only set in one of the build configurations rather than all of them.

Problem: Firefox 7 strips "http://" from URLs.
Solution: Set browser.urlbar.trimURLs to false.

Problem: growisofs always enables verify-during-write mode when writing Blu-ray discs (thus slowing down writes by a factor of 2, wasting time if the disc will be read-verified afterward anyway).
Solution: growisofs -use-the-force-luke=spare:none -Z /dev/bd=...

Problem: Attempting to connect to an HTTPS server using Perl (with LWP::Protocol::https and IO::Socket::SSL) fails with "Can't connect" even though connecting with a browser works fine.
Cause: The SSL_ca_file pathname was incorrect.

Problem: Attempting to connect to an HTTPS server using Perl (with LWP::Protocol::https and IO::Socket::SSL) fails with OpenSSL error 14090086 ("certificate verify failed") even though the CA certificate file is correctly set.
Cause: The URL used an IP address for the hostname but the server's certificate had the hostname instead.

Problem: Recent versions of SeaMonkey/Firefox put the "Find" toolbar at the top of the window, so that when you enter Find mode, the page content shifts down and it's easy to lose your reading place (bug 248715).
Workaround: Add the following (for SeaMonkey 2.15) to userChrome.css: findbar { position: fixed; bottom: 26px; border: 2px outset #9e9a91; min-width: 1px; background-color: #dcdad5; } (The Find bar appears to have been moved back to the bottom in bug 914180.)

Problem: Attempting to add a library from the Android SDK "extras" directory to an Android project caused a build failure with the error: "/opt/android-sdk-update-manager/tools/ant/build.xml:569: /opt/android-sdk-update-manager/extras/google/play_apk_expansion/downloader_library resolve to a path with no project properties file for project /tmp/test" despite the displayed library directory existing and containing a project.properties files.
Analysis: strace showed that the build process was trying to open /tmp/test/opt/android-sdk-update-manager/extras/google/play_apk_expansion/downloader_library/project.properties instead of the desired /opt/... path.
Workaround: When adding a library to a project with android update project --library <path>, specify the root directory using a sufficient number of ../ repetitions instead of a single leading slash.

Problem: In recent versions of Emacs, typing a space in incremental search mode will match tab characters as well.
Solution: (setq isearch-lax-whitespace nil)

Problem: Calling the getClass() method on a Java class from an Android native code program sometimes returns a value which is not a valid Java reference, leading to the program segfaulting with "Invalid indirect reference" when it tries to use that value as a class reference.
Cause: If a Java exception is pending, JNI calls from native to Java code seem to return undefined values.
Solution: Always check for exceptions before using the return value from a JNI call.

Problem: When collecting coverage statistics for a GCC-compiled program, gcov reports "file.gcno:corrupted" for some object files.
Cause: The contents of the .gcno file do not match the corresponding object file. This can occur when switching from a non-profiled build to a profiled build and using the same directory for object files without first running make clean or similar.

Problem: An Android NDK app built with revision 8d of the NDK randomly passes an incorrect value for a parameter to the glTexImage2D() function.
Analysis: The value in question was set based in part on the result of a call to an external function marked with the "pure" attribute. Disassembly of the object file revealed that the call had been completely omitted (the function was never called at all), causing the conditional expression to be evaluated based on whatever happened to be in one of the CPU registers (presumably the register designated to hold the function's return value).
Workaround: Don't apply __attribute__((pure)) to functions when building for ARM (armeabi-v7a) with GCC 4.6.
Further analysis: This actually seems to be unrelated to the "pure" attribute. Removing that attribute caused the function to be called, but the return value was still ignored and an uninitialized register used instead. The root cause appears to be an optimizer bug in the GCC 4.6 binary distributed in the NDK, reported as Android bug 60924.
Workaround: Disable optimization on affected functions, or use a newer compiler version.

Problem: TCP connections to some sites fail through Linux NAT.
Solution: Reduce the MTU on the client machines to match the MTU of the gateway system (1454 for PPPoE).

Problem: Twitter's "Top Tweets" box is annoying.
Workaround: Add the following to the browser's user stylesheet (userChrome.css in Firefox/SeaMonkey): div.top-stream-header { display: none !important; } div.top-stream-container { display: none !important; } /* Added 2015-08-17: */ li.has-recap { display: none !important; }

Problem: Twitter's highlighted tweets with different font sizes are annoying.
Workaround: Add the following to the browser's user stylesheet: .ProfileTweet--low .ProfileTweet-text { font-size: 16px !important; font-weight: 400 !important; line-height: 22px !important; } .ProfileTweet--medium .ProfileTweet-text { font-size: 16px !important; font-weight: 400 !important; line-height: 22px !important; } .ProfileTweet--high .ProfileTweet-text { font-size: 16px !important; font-weight: 400 !important; line-height: 22px !important; } .TweetTextSize--26px { font-size: 16px !important; line-height: 22px !important; } .TweetTextSize--jumbo { font-size: 16px !important; line-height: 22px !important; } .TweetTextSize--large { font-size: 16px !important; line-height: 22px !important; }

Problem: Running apitrace on a program which forks a subprocess results in a corrupted trace file after the parent process exits.
Cause: Possibly because the parent process tries to close its compressed stream without realizing additional data has been written to the output file?
Workaround: Copy the trace file to a separate file after the lowest-level child process exits. Make sure no parent process tries to write additional trace data in the interim.

Problem: Attempting to create a 32-bit Wine environment on a 64-bit system using WINEARCH=win32 fails with "wine: WINEARCH set to win32 but 'path' is a 64-bit installation", even if path is an empty directory.
Workaround: Remove the directory and let Wine create it with "WINEARCH=win32 WINEPREFIX=path winecfg". (But according to some reports, this may not work consistently.)

Problem: After mounting an NFS filesystem at a directory located under the mount point of a different NFS filesystem, attempts to access the inner filesystem fail.
Cause: Unknown, possibly a Linux kernel bug?
Workaround: Run ls -l on both the parent of the mount point and the mount point itself (the latter will normally be empty) before mounting the inner filesystem.
Note: This appears to be fixed as of Linux 3.14.

Problem: The default theme in GTK+ 3.x looks worse than in 2.x.
Solution: Mostly fixable with a CSS theme (a slightly edited version of the default GTK+ 3.x theme), though GTK+ 3.x renders thick inset/outset borders in monotone rather than duotone so the border colors don't match exactly.

Problem: Mac OS X 10.8 deprecates the UpdateSystemActivity() system function, and the official recommended replacement (QA1340) is several pages of code irrelevant to "pinging" the system idle timer.
Solution: Use IOPMAssertionDeclareUserActivity() (declared in <IOKit/pwr_mgt/IOPMLib.h>; use -framework IOKit).

Problem: During a parallel build, GNU make failed to apply a pattern rule with a nonexistent prerequisite even though its prerequisite could be built using another rule. Specifically, in a sequence of rules equivalent to: %.foo: %.def cp $*.def $*.foo cp $*.def $*.bar %.bar: %.foo file2.bar: file1.bar cp $< $@ the final cp failed because file1.bar did not exist, even though the dependency chain should have delayed the execution of the command until the %.foo: %.def rule finished execution.
Workaround: If a recipe generates multiple outputs, include all output patterns in the pattern rule's target list: %.foo %.bar: %.def cp $*.def $*.foo cp $*.def $*.bar file2.bar: file1.bar cp $< $@ The recipe will still only be run once, but it will be triggered for a target that matches any of the patterns, and all target patterns will be considered updated.

Problem: Booting Linux on a Dell XPS 12 laptop causes the screen to go black when the kernel switches to a framebuffer console.
Cause: The backlight brightness is getting set to zero, which causes the system to turn the display off.
Solution: (from various sources) Add "acpi_backlight=vendor" to the kernel command line, or press Fn+F5 to increase the backlight brightness.

Problem: Sony PS3 controllers are no longer recognized by the Linux kernel after upgrading from Linux 3.10.7 to Linux 3.11.8.
Cause: The 3.11 driver newly depends on kernel configuration options CONFIG_NEW_LEDS and CONFIG_LEDS_CLASS.

Problem: Gentoo's Portage system has no facility for applying custom patches to arbitrary packages. (The epatch_user facility only functions when the ebuild explicitly calls it.)
Solution: Add post_src_unpack and post_src_prepare functions to /etc/portage/bashrc which call the epatch function for all relevant patches, such as in this script.

Problem: Module addresses in an iOS stack trace don't match up with the code listing as reported by "otool -tv".
Solution: Add 0x4000 to the module addresses in the stack trace.

Problem: Attempting to convert a Python bytearray of UTF-8 text to a Unicode string in Python 2.7 by passing it to unicode() fails with "TypeError: decoding bytearray is not supported".
Solution: Use bytearray.decode("utf-8"), or use Python 3.0 or later.

Problem: After connecting an Android 2.3.3 device (Xperia Play) to a computer via USB and turning the device on, the adb tool refused to recognize the device.
Analysis: dmesg showed that the device was connected in mass storage mode, despite the device itself claiming to be connected in media transfer mode. The timestamp of the log message matched the time when the device was turned on, so it may have booted in mass storage mode and failed to switch to media transfer mode.
Solution: Disconnect and reconnect the device.

Problem: Linux udev sets the mode of a joystick's event device to 0600 owned by root, preventing ordinary users from accessing it.
Solution: Create the file /etc/udev/rules.d/99-joystick.rules with the following content: KERNEL=="js*", GROUP="console", MODE="0660" DEVPATH=="*/input*/event*", PROGRAM=="/bin/sh -c 'test -d /sys'\''%p'\''/device/js* 2>/dev/null'", GROUP="console", MODE="0660" Replace the console in GROUP="console" with an appropriate group name for the system, or use OWNER="username", MODE="0600" to make the device nodes owned by a specific user.

Problem: OpenGL returns GL_INVALID_ENUM when querying framebuffer parameters with glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, ...).
Cause: OpenGL requires GL_DEPTH (without the "_ATTACHMENT" suffix) when querying the default framebuffer.

Problem: A disk image of a Windows 2000 system drive will not boot when transferred to another disk, even when the partitions start at the same absolute sector number.
Cause: The target disk's CHS (cylinder/head/sector) configuration differs from that of the source disk.
Solution: Force the bootloader to use LBA addressing by modifying the two bytes at offset 0xE6 in the image from 0F 82 to 90 E9.

Problem: After copying a Windows 2000 disk image to a new disk, Windows shows a paging file error on boot and will not allow the user to log in.
Cause: (from KB249321) Windows sees the new disk as a different disk than the original and assigns it a different drive letter, preventing it from accessing the paging file on the drive. (The values under the MountedDevices key mentioned below appear to consist of the 32-bit volume ID followed by a 64-bit partition offset, suggesting that if the volume ID and partition location remain the same, the partition will be recognized as the same disk.)
Solution: In Linux, install the chntpw program, mount the Windows drive, then run the following commands (assuming the drive is mounted at /mnt/windows): chntpw -e /mnt/windows/WINNT/system32/config/SYSTEM cd MountedDevices delallv q Then ensure that the system drive is the only partition visible to Windows when it boots.

Problem: An iPad app playing audio in the SoloAmbient category only has sound when headphones are plugged in; no sound is played through the built-in speaker. The volume buttons work as usual, and the AVAudioSession instance reports a nonzero volume for speaker output.
Cause: The device's side switch is set to Mute mode in the device settings and the switch is turned on, or the switch was turned on at some point in the past and the side switch mode was then changed to "Lock Rotation" mode. (The mute switch affects only SoloAmbient and Ambient audio sessions, not Playback audio sessions such as the Music app.)
Solution: Set the side switch to "Mute" mode in the General page of the Settings app, then turn the switch off (first turning it on if it is currently in the off position).

Problem: When using Emacs 23 in a terminal, Emacs sometimes fails to switch out of the alternate terminal display when exiting or suspending.
Cause: Unknown. Does not appear to be the race condition suggested at http://debbugs.gnu.org/db/10/10959.html.
Workaround: Create the following shell script and place it somewhere before /usr/bin in the executable path (replace /usr/bin with the actual directory where the Emacs executable is installed): #!/bin/sh echo -n $'\033[?47h' /usr/bin/emacs "$@" echo -n $'\033[?47l' Remember to chmod a+x the script and clear the executable path cache (hash -r in Bourne shell, rehash in csh) so the script can be found. This only solves the problem when exiting the editor, not when suspending it.

Problem: When using Libreoffice Writer (version 4.2.6.2), page numbers in the page footer are incorrect, such as "1, 1, 2, ...".
Workaround: Close and reopen the document.

Problem: The XRRSetCrtcConfig() function returns failure when changing from a lower resolution to a higher one on termination of a fullscren X11 program, but only when the program is terminated with Ctrl-C (SIGINT).
Cause: The X and Y arguments to the call were taken from the current CRTC values instead of the mode configuration, and those values were invalid (would have caused the viewport to go outside the bounds of the screen's framebuffer) for the target mode. The call succeeded under other conditions because the fullscreen window was located at coordinates (0,0), and it failed under SIGINT because the screen had been scrolled in order to type ^C in the terminal window from which the program had been run.

Problem: When looking up a USB device path on Windows XP with GetRawInputDeviceInfo(RIDI_DEVICENAME), passing the returned path to CreateFile() results in an ERROR_INVALID_NAME error.
Analysis: The returned path begins with "\??\", an apparent typo of the raw-path prefix "\\?\".
Workaround: Check for the erroneous prefix and, if found, replace the second byte (the first "?") with a "\".

Problem: In the Mac OS X Disk Utility, attempting to increase the size of a bootable volume to fill the following free space appears to succeed, but the volume size does not actually change.
Cause: The volume's recovery partition is located immediately after the end of the data partition (and Disk Utility is not smart enough to move it).
Workaround: Create a dummy volume filling the free space; copy an existing bootable volume over that dummy volume; then, using the diskutil command-line utility as shown below, copy the original volume's recovery partition over the new volume's recovery partition and merge the original volume over its recovery partition and the new volume's data partition. (This must be performed while booted from a volume which is neither the volume to be resized nor the volume copied over the dummy partition.) $ sudo bash Password: # diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *320.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 123.5 GB disk0s2 (1) 3: Apple_Boot Recovery HD 650.0 MB disk0s3 (2) 4: Apple_HFS Yosemite 69.3 GB disk0s13 (3) 5: Apple_Boot 650.0 MB disk0s14 (4) 6: Apple_HFS Yosemite 28.6 GB disk0s4 7: Apple_Boot Recovery HD 650.0 MB disk0s5 [...] # diskutil unmount (1) Volume Macintosh HD on (1) unmounted # diskutil unmount (3) Volume Yosemite on (3) unmounted # dd bs=67108864 if=(2) of=(4) 9+1 records in 9+1 records out 650002432 bytes transferred in 28.273851 secs (22989526 bytes/sec) # diskutil mount (4) Volume Recovery HD on (4) mounted # diskutil rename (4) 'Recovery HD' Volume on (4) renamed to Recovery HD # diskutil unmount (4) Volume Recovery HD on (4) unmounted # diskutil mergePartitions JHFS+ foo (1) (3) Merging partitions into a new partition Start partition: (1) Macintosh HD Finish partition: (3) Yosemite Started partitioning on disk0 Merging partitions Waiting for the disks to reappear Growing disk Finished partitioning on disk0 /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *320.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 193.5 GB disk0s2 (1) 5: Apple_Boot Recovery HD 650.0 MB disk0s14 (4) 6: Apple_HFS Yosemite 28.6 GB disk0s4 7: Apple_Boot Recovery HD 650.0 MB disk0s5 [...] # exit $

Problem: Seamonkey 2.31 on Linux fails to start up after upgrading from 2.30, only showing the "clear private data" dialog and reporting "###!!! ABORT: Aborting on channel error.: file [...]/comm-release/mozilla/ipc/glue/MessageChannel.cpp, line 1618" to the console.
Workaround: Attaching to the process with gdb when the dialog was shown and then detaching allowed the program to start up normally on future runs.

Problem: If an iPad is left connected to a Mac through the keyboard USB connector while the Mac is asleep, the iPad's battery will drain.
Analysis: Appears to be because the iPad only turns its screen off and remains awake when the Mac goes to sleep. According to Apple, this is the intended behavior (bug 16644444).

Problem: CMake attempts to configure for an in-source build even though run from an out-of-source directory and the source tree does not contain any CMakeCache.txt files.
Solution: Make sure cmake was invoked with the path to the source tree (directory), not the path to the CMakeLists.txt file itself.

Problem: Attempting to screencast (video/audio capture) from Linux using FFmpeg 2.2.11 leads to repeated "ALSA buffer xrun" messages from FFmpeg associated with pops in the recorded audio and "Non-monotonous DTS in output stream" messages associated with complete audio desync.
Cause: FFmpeg's ALSA recording logic is broken.
Workaround: Patch FFmpeg to not consume data from a raw audio pipe source, then use the arecord tool to record audio and pipe it through FFmpeg. Proper audio/video sync may require applying a slight time offset to the audio stream using the -itsoffset option as well. For example: arecord -D hw:0,0 --period-size=512 -t raw -f s16_le -c 2 -r 48000 \ | ffmpeg -f s16le -ac 2 -ar 48000 -channel_layout stereo -itsoffset -0.1 -i pipe:0 [...]

Problem: After restarting the X.Org X server, most bitmap fonts fail to load, with only the "6x13" font (a.k.a. "fixed", the default font) and a few Japanese fonts still working.
Cause: The fonts had been upgraded from Latin-1 (iso8859-1) to Unicode (iso10646-1) versions, but the fonts.alias file still aliased the short font names ("7x14" and so on) to the iso8859-1 long names. "6x13" worked because an iso8859-1 version was built into the X server, and "fixed" worked because it was aliased to the iso8859-1 version of "6x13".

Problem: When testing a Mac OS X application, if the program crashes, OS X will throw up a "Do you want to reopen windows?" dialog on every subsequent run of the program.
Solution: Delete the "~/Library/Saved Application State/bundle-id" directory. Creating a file with the same path may unfortunately does not prevent OS X from saving state on future crashes.

Problem: When sending synthetic keyboard input events to an OS X application using the NSApplication -[sendEvent:] method, key-down events trigger a "Non-Unicode event without Carbon EventRef" exception.
Solution: Pass a non-NULL NSString object for the characters and charactersIgnoringModifiers parameters when creating the synthetic event with [NSEvent keyEventWithType].

Problem: Windows 8.1 reported a side-by-side assembly error when trying to start an executable containing a handwritten application manifest. The sxstrace tool only reported the contents of the assemblyIdentity tag followed by the message "ERROR: Activation Context generation failed."
Causes: (1) The supportedOS tag's attribute was written as id instead of the correct Id (capital "I"). (2) The XML namespaces were not correctly set on the application - windowsSettings - dpiAware tag hierarchy; in particular, the documentation for the dpiAware tag is incorrect, with sample code that reads xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings" when the correct namespace is xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings".

Problem: Building an Android NDK app using the Android 5.0 SDK (platform android-21) and running the app on an Android 4.4 device results in an error attempting to load the app's native code library.
Cause: Stupid design decision: the Android 5.0 libraries deliberately break compatibility with previous versions of Android by removing inline function definitions (see https://code.google.com/p/android/issues/detail?id=73725).
Workaround: Build against android-19 and android-21, diff the outputs of nm on the native code library for each build to find which symbols have changed (or alternatively, write a short wrapper program to dlopen() the native code library and print the return value of dlerror()), and manually define the missing functions. This is known to affect at least the following functions: atof, isnan, rand, random, sigaddset, sigdelset, sigemptyset, signal, srand, srandom, strtof

Problem: Attempting to look up an OpenGL shader uniform with glGetUniformLocation() failed even though the uniform was correctly defined in the shader source code.
Cause: The uniform was unused in the shader, so the compiler optimized it out and thus it was not assigned any storage location.

Problem: Compiling a C++ program using "placement new" syntax with mingw32-gcc 4.9.2 resulted in "undefined reference to `operator new(unsigned int, void*)'" errors at link time.
Cause: The source file in question lacked "#include <new>". The compilation succeeded on Linux presumably because some system header included <new> on its own, masking the bug.

Problem: Detaching an OpenGL shader object from a shader program object after successfully linking the shader program caused primitives using that shader program to be randomly corrupted when drawing on a Galaxy Nexus device with Android 4.2.2 using a PowerVR SGX 540 GPU. A "checkerboard" sort of pattern was often seen, in which a solid rectangle would have 16x16 pixels out of every 32x32 block missing.
Cause: Apparently a driver bug which requires the shader objects to remain allocated while the shader program is in use.
Workaround: Leave shader objects attached to their programs while the programs are in use. Deleting the shader objects ahead of time allows the shader objects to be automatically cleaned up when the program object is later deleted.

Problem: When MPlayer (version 1.2-pre20150214) is playing a movie, muting the movie's audio affects all sound on the system.
Cause: MPlayer defaults to using the system volume settings to control movie audio volume.
Solution: Pass the -softvol option on the command line, or add softvol=true to the MPlayer configuration file (~/.mplayer/config on Linux).

Problem: Attempting to start VMware Workstation 10.0.6 on Gentoo Linux results in the vmware program aborting, sometimes with a "free(): invalid pointer" error.
Cause: Two different versions of the OpenSSL libraries (libssl and libcrypto) are being loaded: 1.0.1, shipped with VMware, and 1.0.2 (with library filenames ending in "1.0.0"), installed on the system.
Workaround: Copy /usr/lib/lib{ssl,crypto}.so.1.0.0 over the respective 1.0.1 libraries under /opt/vmware/lib/vmware/lib, then edit the copied files and replace all occurrences of "1.0.0" with "1.0.1".

Problem: Attempting to mount a Windows 8.1 partition in Linux reports "Windows is hibernated, refused to mount" even though Windows was shut down properly.
Cause: (from here) Windows 8 has a "hybrid boot" feature that always hibernates kernel state instead of fully shutting down, even when you select "reboot" or "shut down" in Windows.
Solution: Run the command shutdown /s /t 0 in Windows.

Problem: Saving a spreadsheet in XLSX format using LibreOffice 4.4.5.2 causes any trailing spaces in cells containing text to be stripped when the file is subsequently loaded in Microsoft Excel.
Cause: Excel uses an invalid XML attribute (xml:space="preserve") on text string definitions (<t> in xl/sharedStrings.xml) to indicate that trailing whitespace should be preserved; LibreOffice does not write this attribute. (Apparently this was fixed once in bug 40067, and subsequently broken again as reflected in bug 88137.)
Solution: Apply the patch at http://cgit.freedesktop.org/libreoffice/core/commit/?id=3004221e47918eb08cfa98ba43a23a0b25412cd5 to the LibreOffice source, or wait for the 5.1 release.

Problem: How to disable System Integrity Protection ("rootless" mode) on OS X 10.11?
Solution: Boot into recovery mode (Command-R at startup), then run "csrutil disable" at the command line.

Problem: OS X 10.11 refuses to start up versions of Xcode prior to 7.0.
Workaround: Create an Xcode5.app (for example) directory in a convenient location, create the following shell script as Xcode5.app/Contents/MacOS/Xcode5, and make it executable with chmod a+x: #!/bin/sh exec /Applications/Xcode5.app/Contents/MacOS/Xcode ${1+"$@"} The new Xcode5.app can then be opened in place of the original application.

Problem: After upgrading the Linux NVIDIA driver from version 355.11 to version 358.09, X.org showed a black screen on startup, reporting "Setting mode NULL" in the log file.
Cause: Version 358 of the driver requires a separate nvidia-modeset module in addition to the main nvidia module, and the invocation of modprobe by the X server failed to load the module because I had not run depmod -a after installing the new version of the driver.

Problem: In Seamonkey 2.35 through at least 2.39 on Linux, the browser sporadically crashes for no apparent reason.
Analysis: A backtrace included a call to mozilla::dom::Gamepad::Release() with an invalid pointer, suggesting a memory corruption or use-after-free bug in the game controller code.
Workaround: Open about:config and disable the dom.gamepad.enabled preference. Doesn't seem to help; the crashes occur in other locations as well, seemingly related to garbage collection.
Further analysis: This appears to be unrelated memory corruption caused by multithreaded use of the Cairo library; see Gentoo bug 558150.
Workaround: Set the layers.offmainthreadcomposition.enabled preference to false in about:config (or user.js).

Problem: When linking an ELF executable using the ld tool from the GNU binutils package with a custom linker script, the text section alignment was set to 4 bytes despite the presence of an ALIGN(0x40) command in the linker script.
Cause: The ALIGN command was placed before the colon in the section description (".text ALIGN(0x40) : {...}"), which causes the section's starting address to be aligned but does not affect the alignment value written to the output file.
Solution: Moving the ALIGN command after the colon (".text : ALIGN(0x40) {...}") caused the ELF section alignment to be set to 64 bytes as intended.

Problem: iOS devices automatically download and prompt to install new versions of iOS even if automatic downloading of updates is disabled in the device settings.
Workaround:Block the host mesu.apple.com on the DNS server used by the device (from here).

Problem: Attempting to run a cross-compiler on Gentoo Linux gives the error "gcc-config: Could not get portage CHOST!".
Cause: The selected cross-compiler is set to a version which has been uninstalled.
Solution: Run gcc-config to set a valid compiler version for the cross-compiler.

Problem: Attempting to start the free trial version of Final Fantasy XIV under Wine 1.9.5 fails.
Subproblem 1: The launcher displays a "system error (404)" message and exits.
Solution 1: Just run the launcher again.
Subproblem 2: The launcher gets stuck at a black screen.
Solution 2: Edit the FFXIV_BOOT.cfg file in the "My Games/FINAL FANTASY XIV - A Realm Reborn" subdirectory of the Windows user's "My Documents" directory to set BrowserType to 2.

Problem: Attempting to play audio through the default ALSA device (dmix) gives "File descriptor in bad state" (EBADFD) errors. Audio plays normally when using the hardware device (hw:0,0) directly.
Analysis: EBADFD is generated when the ALSA library tries to open the hardware device. Instrumenting the library revealed that it was passing O_APPEND to the open() call, and attempting to open the device from a shell (exec 3>>/dev/snd/pcmC0D0p) likewise gave EBADFD.
Solution?: Unknown, but after a few exec tests in the shell, dmix playback started working again.
Further analysis: The dmix plugin passes O_APPEND when another dmix instance is already present, as determined by checking a shared-memory object with shmget(). It may be that some other ALSA-using program died in a way that left the shared-memory object in a bad state.
Solution: Remove the stale shared-memory object with these shell commands: echo 1 >/proc/sys/kernel/shm_rmid_forced echo 0 >/proc/sys/kernel/shm_rmid_forced Alternatively, echo 1 >/proc/sys/kernel/shm_rmid_forced in a system startup script to automatically remove the shared-memory object as soon as the last process detaches from it. Note, however, that this will prevent all programs from storing persistent data in shared-memory objects.

Problem: Attempting to start Celestia on a Gentoo Linux system with an NVIDIA graphics card causes the program to abort with these errors: libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast The program 'celestia' received an X Window System error. This probably reflects a bug in the program. The error was 'GLXBadContext'. (Details: serial 1813 error_code 167 request_code 153 minor_code 6) Analysis: The program is attempting loading the software OpenGL library (in /usr/lib) rather than the NVIDIA library (in /usr/lib/opengl/nvidia/lib).
Cause: Unknown.
Workaround: LD_LIBRARY_PATH=/usr/lib/opengl/nvidia/lib celestia

Problem: Attempting to recompile PCSX2 1.3.1 via the Gentoo Portage system with FEATURES="keepwork" and a pre-existing build directory containing an incomplete build fails due to nonexistent output directories for object files.
Cause: The CMake-based PCSX2 build system seems to create all required output directories at the beginning of the build, but does not check whether the directory still exists when actually compiling into it. Portage, on the other hand, removes all empty directories as part of a pre-clean phase before attempting to build a package, even with the keepwork feature flag enabled.
Workaround: Apply noclean-fix.diff from here, then add noclean to the FEATURES variable when rebuilding from an existing directory.

Problem: PCSX2's "onepad" plugin fails to recognize any joystick devices on Linux.
Cause: The onepad plugin calls SDL_Init() with the SDL_INIT_HAPTIC flag, but SDL_Init() returns failure if the library was not built with haptic support.

Problem: When moving the mouse pointer into an X11 window, the entire screen goes black.
Cause: The window was opened using a DirectColor visual, but the program did not set a colormap.
Solution: Use TrueColor instead of DirectColor.

Problem: Firefox/SeaMonkey refused to accept a particular string as a bookmark keyword; typing the string into the keyword and switching away from and back to the bookmark caused the keyword field to be cleared, even though the keyword was not used by any other bookmarks.
Cause: The internal bookmarks/history ("places") database had become desynchronized; the keyword was listed in the keyword table, so it was rejected by the bookmark manager, but it had no associated bookmark in the bookmark table.
Solution: Quit the browser, load the places.sqlite file from the profile directory into the sqlite command-line tool, and delete the offending keyword from the moz_keywords table with a SQL command like: DELETE FROM moz_keywords WHERE keyword='broken keyword';

Problem: Firefox/SeaMonkey on Gentoo Linux use a default filename extension of ".htm" instead of ".html" when saving HTML pages.
Cause: The "htm" extension is listed first for the "text/html" MIME type in /etc/mime.types.
Solution: Put "html" before "htm" in the extension list.

Problem: The zathura document viewer has an awkward default window size.
Solution: Add these lines to ~/.config/zathura/zathurarc: set window-width 800 set window-height 1000

Problem: The net.eth0 init script on Gentoo Linux (openrc-0.21.3, netifrc-0.4.0) reports failure despite the interface having been successfully configured. The script also needlessly waits for 5 seconds to configure IPv6 addresses even though the interface's IPv6 address is statically configured.
Solution: Rip out the bloated net.eth0 and replace it with a simple script that just runs the appropriate ifconfig and route commands. Optionally give the script a different name to reduce the risk that a future openrc/netifrc update will overwrite it.

Problem: If Windows 10 starts trying to "automatically repair" the system at boot time, there is no way to interrupt it.
Solution: Run the command bcdedit /set recoveryenabled NO from a command prompt (requires administrator privileges). bcdedit /set {default} bootmenupolicy legacy can also help by enabling the F8 boot menu.

Problem: MacOS Sierra (10.12) fails to install certificates generated by OpenSSL 1.0.1, complaining of an invalid format. The same certificates work fine in El Capitan (10.11).
Cause: The first element of the TBSCertificate sequence in the problematic certificates is a version tag with the value set to 0 (v1), the same as the default value for the field. This violates DER, and MacOS 10.12 rejects it.
Solution: Generate the certificates using OpenSSL 1.0.2 or later.

Problem: The Linux Discord client is unable to start up due to repeatedly attempting and failing to download an update.
Solution: Disable automatic updates by adding the following entry to .config/discordcanary/settings.json: "ALWAYS_ALLOW_UPDATES": false It may also be necessary to delete any partially downloaded updates under .config/discordcanary.

Problem: Closing the Discord window leaves the process running.
Solution: Press Ctrl+Q instead of closing the window.

Problem: Function calls whose return values are used in a branch hint do not execute when compiled with the C compiler included in Microsoft Visual Studio.
Cause: The MSVC compiler does not evaluate the expression argument to __assume(), so if the expression includes a function call, the call gets dropped.