Bugs item #1251631, was opened at 2005-08-04 09:18 Message generated for change (Comment added) made by loewis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1251631&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Parser/Compiler Group: Python 2.4 >Status: Closed >Resolution: Fixed Priority: 7 Submitted By: Viktor Ferenczi (complex) Assigned to: Martin v. Löwis (loewis) Summary: Python 2.4.1 crashes when importing the attached script Initial Comment: OS: WinXP Prog. ENG SP1 Python: 2.4.1 MSI installer downloaded from python.org Python crashes or rarely raises MemoryError or SyntaxError when trying to import/execute the script attached. The behaviour changes when some lines are modified, but mostly crashes the python process with a memory access violation. The python process used 4.2Mbytes of system memory when crashed. There were more than 500Mbytes free. Register dump: EAX = 00A8CC61 EBX = 0000000A ECX = 00000000 EDX = 00000000 ESI = 00A10DA0 EDI = 00000022 EIP = 1E0A7F10 ESP = 0021FD98 EBP = 00000222 EFlags = 00000293 Other registers are irrelevant. The bug occured at the last line of the following instruction sequence because ECX was zero: 1E0A7EB2 66 C7 02 0A 00 mov word ptr [edx],0Ah 1E0A7EB7 8B 46 08 mov eax,dword ptr [esi+8] 1E0A7EBA 6A 00 push 0 1E0A7EBC 50 push eax 1E0A7EBD FF 15 B4 31 0C 1E call dword ptr ds:[1E0C31B4h] 1E0A7EC3 89 46 08 mov dword ptr [esi+8],eax 1E0A7EC6 8A 48 FF mov cl,byte ptr [eax-1] 1E0A7EC9 83 C4 08 add esp,8 1E0A7ECC 80 F9 0A cmp cl,0Ah 1E0A7ECF 0F 85 72 FF FF FF jne 1E0A7E47 1E0A7ED5 BB 0A 00 00 00 mov ebx,0Ah 1E0A7EDA 8B 0E mov ecx,dword ptr [esi] 1E0A7EDC 8B 54 24 0C mov edx,dword ptr [esp+0Ch] 1E0A7EE0 8D 04 11 lea eax,[ecx+edx] 1E0A7EE3 89 46 04 mov dword ptr [esi+4],eax 1E0A7EE6 8B 46 08 mov eax,dword ptr [esi+8] 1E0A7EE9 83 E8 02 sub eax,2 1E0A7EEC 3B C1 cmp eax,ecx 1E0A7EEE 72 0F jb 1E0A7EFF 1E0A7EF0 80 38 0D cmp byte ptr [eax],0Dh 1E0A7EF3 75 0A jne 1E0A7EFF 1E0A7EF5 C6 00 0A mov byte ptr [eax],0Ah 1E0A7EF8 40 inc eax 1E0A7EF9 C6 00 00 mov byte ptr [eax],0 1E0A7EFC 89 46 08 mov dword ptr [esi+8],eax 1E0A7EFF 39 5E 14 cmp dword ptr [esi+14h],ebx 1E0A7F02 75 21 jne 1E0A7F25 1E0A7F04 8B 4E 04 mov ecx,dword ptr [esi+4] 1E0A7F07 3B 4E 08 cmp ecx,dword ptr [esi+8] 1E0A7F0A 0F 84 24 FD FF FF je 1E0A7C34 1E0A7F10 0F B6 01 movzx eax,byte ptr [ecx] It may be possible to find the source line related to this bug by searching for this code in the retail python.exe then looking up the address in the map file produced by the compiler (if enabled). I can run the script with a debug version of python.exe. Please send me information about how to download a debug version for Windows. Note: I've tried to search this bug in the bug database, but it's not specific enough to find an exact match. No viruses nor spyware found on my machine using multiple antivirus/antispyware product. No memory errors found in 6 hours. I use LF (UNIX type) line ends on Windows to prevent errors when my scripts copied and edited on a Linux box. ---------------------------------------------------------------------- >Comment By: Martin v. Löwis (loewis) Date: 2005-08-25 08:07 Message: Logged In: YES user_id=21627 This is now fixed for 2.4.2, which will say File "python_2.4.1_crash.py", line 225 SyntaxError: 'ascii' codec can't decode byte 0xc1 in position 0: ordinal not in range(128) ---------------------------------------------------------------------- Comment By: Walter Dörwald (doerwalter) Date: 2005-08-08 09:17 Message: Logged In: YES user_id=89016 The line number problem might be related to http://www.python.org/sf/1178484 ---------------------------------------------------------------------- Comment By: Tim Peters (tim_one) Date: 2005-08-07 19:40 Message: Logged In: YES user_id=31435 Note that it's not legal input: there's a non-ASCII character in line 225, which conflicts with the explicit # -*- coding: ascii -*-" directive near the top of file. Get rid of the non-ASCII character, and it seems to load fine. Current Python HEAD (2.4.2 development) gives a different outcome: File "pycrash.py", line 222 SyntaxError: unknown decode error That's peculiar too, because the offending character is actually on line 225, and because "unknown decode error" is unhelpful. Python 2.3 at least got the line number right: File "pycrash.py", line 225 SyntaxError: unknown decode error The best error report is gotten by deleting the encoding directive instead (using 2.4.1 here): sys:1: DeprecationWarning: Non-ASCII character '\xc1' in file pycrash.py on line 224, but no encoding declared; see http ://www.python.org/peps/pep-0263.html for details Assigning to Martin under the vague recollection that he knows most about the encoding implementation. ---------------------------------------------------------------------- Comment By: Viktor Ferenczi (complex) Date: 2005-08-04 09:21 Message: Logged In: YES user_id=142612 The bug could be in python.dll, of course. I need a debug version of python.dll. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1251631&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com