On 07 August 2007 01:27, Olumide wrote: > Larry Hall (Cygwin) wrote: >> The best solution would be to uninstall McAfee (I'm serious!) But if you >> don't want to do that, try disabling real-time scanning. > > I did it differently. I "asked" McAfee to consider setup.exe a low risk > process :-) .
There's something else you could do, if you can spare a few minutes: you could help out by contributing some information that would allow us to diagnose this problem more easily in future. These sorts of problems (cpu usage pegged at 100%, or mysterious hangs or fork failures) are often caused by buggy versions of antivirus, antispyware, personal firewall, or other similar security or system-related software that hooks into every running process and - because it doesn't hook in completely transparently - affects the behaviour of the operating system calls that cygwin relies on to work. I'm adding code to cygcheck to detect whether any of the software that has been known at some time to cause these kinds of problems are installed on the target system being cygchecked. The way it detects whether the software is there or not is by looking for keys in the registry, files and directories on disk, or running processes or loaded DLLs in memory, that would indicate that one of the problematic applications is installed. But I can't do it all myself, because I don't have any access to most of the software that has been reported to cause problems in the past. What I'd like is if you could take the attached sysinf.cc file, run: g++ sysinf.cc -o sysinf -DAUTOMATIC -lntdll at the command-line, then execute: ./sysinf.exe > sysinf.txt and email me the sysinf.txt output file (offlist). What that does is to show me a list of all running processes, and another of all loaded dlls, drivers, and any other kinds of executable modules, which I'll use to add as many methods of detection for as many of the troublesome applications as possible. If you have even a few more minutes to spare than that, if you could take a look in your registry, you'll probably find some interesting keys under HKEY_LOCAL_MACHINE\SOFTWARE, indeed most likely under HKEY_LOCAL_MACHINE\SOFTWARE\McAfee. It would be very kind if you could list a bunch of them for me, either by exporting that key from the registry to a file and sending it to me, or just by making a few handy notes of the most interesting-looking keys under there, such as for example shown in this email sent yesterday to the cygwin-talk list: http://cygwin.com/ml/cygwin-talk/2007-q3/msg00076.html cheers, DaveK -- Can't think of a witty .sigline today....
/* Sysinf.cc Copyright Dave Korn 2007 This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. Sysinf.cc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Sysinf.cc; see the file COPYING. If not see <http://www.gnu.org/licenses/>. To compile this utility under Cygwin, simply enter g++ sysinf.cc -o sysinf -lntdll at the commandline. You invoke it with a single command-line argument, which is the integer value of the system information class (as defined by the NT native API and the SYSTEM_INFORMATION_CLASS enumeration) for which you wish to view the data returned by NtQuerySystemInformation. To build a simplified version that only dumps the system information class 5 and 11 data and ignores command-line arguments, add the compiler flag "-DAUTOMATIC" to the above command-line. */ #include <stdio.h> #include <assert.h> #include <windows.h> #include <ntdef.h> #include <ddk/ntapi.h> #define RVS "\e[7m" #define NORM "\e[0m" void dump_sysinf (int infonum) { unsigned long size = 29360; //29232; //29168; //0x1000; unsigned long outsize; unsigned char *buffer = (unsigned char *) malloc (size); while (NtQuerySystemInformation ((SYSTEM_INFORMATION_CLASS)(infonum & 0xff), buffer, size, &outsize) == STATUS_INFO_LENGTH_MISMATCH) { size *= 2; free (buffer); buffer = (unsigned char *) malloc (size); } /* Now dump it out. */ unsigned int i, j; fprintf (stdout, "System Information #%d: Size %d (0x%08x) Base $%08x\n", infonum, outsize, outsize, (unsigned int)buffer); for (i = 0; i < outsize; i += 16) { fprintf (stdout, " %04x: ", i); for (j = 0; j < 16; j++) { if ((i + j) >= outsize) fprintf (stdout, ".. "); else fprintf (stdout, "%02x ", buffer[i + j]); } fprintf (stdout, " "); for (j = 0; j < 16; j++) { unsigned char outch; if ((i + j) >= outsize) break; outch = buffer[i + j]; if (outch < 0x20) fprintf (stdout, RVS "%c" NORM, outch + 0x40); else if (outch < 0x7f) fprintf (stdout, "%c", outch); else if (outch == 0x7f) fprintf (stdout, "~"); else if (outch < 0xa0) fprintf (stdout, RVS "%c" NORM, outch + 0xC0); else fprintf (stdout, "%c", outch); } fprintf (stdout, "\n"); } } int main (int argc, const char **argv) { #ifdef AUTOMATIC dump_sysinf (5); fprintf (stdout, "\n\n"); dump_sysinf (11); #else /* !AUTOMATIC */ if (argc != 2) { fprintf (stderr, "Usage: sysinf <systeminfonumber>"); return -1; } char *endptr; unsigned long infonum = strtoul (argv[1], &endptr, 0); if ((infonum > 256) || *endptr) { fprintf (stderr, "Invalid info number %d ('%s')\n", infonum, argv[1]); return -1; } dump_sysinf (infonum); #endif /* ?AUTOMATIC */ return 0; }
COPYING
Description: Binary data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/