Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Subject: RE: Bash login breaks if too many environment variables are set Date: Fri, 16 Sep 2005 15:55:14 +0200 Message-ID: <67B13185D126644BA1AC929BE1F942AD7A5ADD@dekomplm001.net.plm.eds.com> From: "Hommersom, Fred" To: Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id j8GDtr2Z029047 Yes sure. You can see this in the header of the dump its says: DLL version: 1005.19, api: 0.138 DLL build: 20050916 00:00:39SNP In order to be sure that we are talking about the same things: I have all these variables in DOS and start bash from a CMD window with command c:\cygwin\bin\strace -o fhbashtrace.txt c:\cygwin\bin\bash As indicated in previous mails the stackdump occurs only with an exact number of characters for all environment names and values together. My names and values have sizes of 1-1000 characters. No extremes. But this dll behaves differently from the "production". Now if I have one character less then the 'dumping' number some commands (e.g. ls) works, others don't. I did not find a pattern in it. I'll keep trying. But if I add 10 characters to an enviroment variable ( so 10 more then the number that gives the dump) then bash exits immediately without dump. Strace gives: 27 324 [main] bash 3024 set_myself: myself->dwProcessId 3024 23 347 [main] bash 3024 time: 1126876171 = time (0) 422 769 [main] bash 3024 environ_init: 0x10010238: !C:=C:\Dat No more output here, no stackdump nothing. just exit It looks to me as if a buffer or stack is reused if some maximum is exceeded with effect that the system sometimes works. Fred -----Original Message----- Sure you've used the latest snapshot DLL? I tried to reproduce this with the latest snapshot, as well as a self-build DLL from CVS and I can't reproduce this behaviour. My test environment consisted of 1400 variables with a size of 98K, one of the variables taking roughly 31K alone. However, what's strange in your strace output is this: > 442 785 [main] bash 3504 environ_init: 0x10010238: X$ > 37 822 [main] bash 3504 environ_init: 0x10010248: ðH$ > 97 919 [main] bash 3504 handle_exceptions: In cygwin_except_handler exc 0xC0000005 at 0x610D6971 sp 0x22EE64 The first two lines should contain some valid environment entries, but both of them look broken. There's no hint why this is, of course. I observerd that tcsh doesn't like variables with a length of 31K, though. ash, bash, zsh and pdksh could handle that long environment varibale just fine, tcsh on the other hand printed this: $ echo $VERY_LONG_ENV_VAR Word too long. -- 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/