This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author stutzbach
Recipients loewis, stutzbach
Date 2008-05-11.18:39:21
SpamBayes Score 0.00058407494
Marked as misclassified No
Message-id <eae285400805111139g5972fc49u35eab33d179dd908@mail.gmail.com>
In-reply-to <1210445821.81.0.452162951848.issue2810@psf.upfronthosting.co.za>
Content
After several failed attempts at making a test case, and stepping
through C code with a debugger, I see that my initial diagnose is
quite wrong.  RegQueryInfoKey *does* return the sizes in units of
bytes (even though the Microsoft documentation says otherwise).  My
apologies.

I do still have a stack trace from an end-user of my python2.5-based
product, showing that _winreg.EnumValue raises:
WindowsError: [Error 234] More data is available

The application reliably crashes on start-up for this user, when
trying to read some registry entries written by another program and
hitting the above exception.

Unfortunately, I have been unable to reproduce the problem locally.  I
tried a variety of Unicode characters (including some that encode to 4
bytes), and that didn't raise an exception.  I also tried putting some
very long data strings (more than 64kb) into the registry, and that
worked fine too (even though the Microsoft documentation says the ANSI
version *should* return the above exception!).

I'm going to try building a custom PyEnumValue that will dynamically
grow the buffer size when that error occurs.  I'll report back on how
that works out for the end user.

In the meantime, I'm open to other theories on what might cause
RegEnumValue to fail with that error.

The end user is running Vista, if it matters.
History
Date User Action Args
2008-05-11 18:39:27stutzbachsetspambayes_score: 0.000584075 -> 0.00058407494
recipients: + stutzbach, loewis
2008-05-11 18:39:25stutzbachlinkissue2810 messages
2008-05-11 18:39:22stutzbachcreate