Hello.
Thank you for URL.
I don't know exact version, but I don't experience this problem
Hardware: ThinkPad X60 (Intel Core 2 Duo, 2048MB RAM, No swap partition)
VMware host environment: CentOS 5.1 (x86_64)
VMware version: VMware Workstation 6.0.2 (x86_64)
VMware guest environment: many distro using recent kernels (all i386)
I don't have ESX server environment.
Today, I tried to reproduce this problem using 2.6.24.5-85.fc8 kernel and
I got 2 patterns.
http://I-love.SAKURA.ne.jp/tmp/hangup-3.png (10kB)
http://I-love.SAKURA.ne.jp/tmp/messages-3.txt (174kB)
hangup-3.png is the screenshot of hang up and messages-3.txt is the sysrq logs.
Funny thing is that "tar" process sleeps for minutes at blk_remove_plug()
(while "tar" finishes within a minute if 1 CPU).
http://I-love.SAKURA.ne.jp/tmp/dmesg-4.txt (120kB)
dmesg-4.txt is a partial output of "dmesg".
Since rsyslog sometimes cannot save logs to /var/log/messages by some reason,
I tried to directly save from /proc/kmsg using "a.out",
but "a.out" couldn't save logs neither.
Funny thing is that "a.out" process sleeps for minutes at getnstimeofday().
The source code of "a.out" is
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char *argv[]) {
FILE *fp = fopen("/proc/sys/kernel/sysrq", "w");
if (!fp) return 1;
fprintf(fp, "1\n");
fclose(fp);
fp = fopen("/proc/sysrq-trigger", "w");
if (!fp) return 1;
if (fork() == 0) {
int fd_r = open("/proc/kmsg", O_RDONLY);
int fd_w = open("/root/messages", O_WRONLY | O_TRUNC | O_CREAT, 0600);
char buffer[4096];
char timebuf[80];
memset(timebuf, 0, sizeof(timebuf));
memset(buffer, 0, sizeof(buffer));
while (1) {
const int len = read(fd_r, buffer, sizeof(buffer));
static time_t prev = 0;
const time_t now = time(NULL);
if (now != prev) {
static int ...