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 brian.curtin, enolte, loewis, stutzbach, techtonik
Date 2010-04-07.13:11:58
SpamBayes Score 6.011858e-14
Marked as misclassified No
Message-id <1270645921.22.0.26576557249.issue2810@psf.upfronthosting.co.za>
In-reply-to
Content
I just found a one line example of the problem:

>>> EnumValue(HKEY_PERFORMANCE_DATA, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Error 234] More data is available

Other functions are also affected:

>>> QueryValueEx(HKEY_PERFORMANCE_DATA, None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Error 234] More data is available

In a nutshell, the Python implementation of these functions works like this:
  1) Query the API for the length of the value
  2) Allocate a buffer of that size
  3) Query the API for the value

However, the API functions called in step #1 are not guaranteed to be accurate.  It works *most* of the time, but if step #3 returns ERROR_MORE_DATA then we need to dynamically grow the buffer and try again until the data fits.

I'll have a patch (with test cases) ready later today.
History
Date User Action Args
2010-04-07 13:12:01stutzbachsetrecipients: + stutzbach, loewis, techtonik, enolte, brian.curtin
2010-04-07 13:12:01stutzbachsetmessageid: <1270645921.22.0.26576557249.issue2810@psf.upfronthosting.co.za>
2010-04-07 13:12:00stutzbachlinkissue2810 messages
2010-04-07 13:11:59stutzbachcreate