facebookincubator / cinder

Cinder is Meta's internal performance-oriented production version of CPython.
https://trycinder.com
Other
3.42k stars 122 forks source link

"Ghost" arguments are being passed to method calls! #137

Closed mrigankpawagi closed 1 month ago

mrigankpawagi commented 1 month ago

I am working with the latest commit in cinder/3.10. I am running some scripts that depend on the aiohttp, aiosignal and lxml packages (among others). However, for many (though not all) method calls inside these packages, I am getting TypeErrors of the following nature.

TypeError: feed_data() takes exactly 1 positional argument (1152921504606846977 given)

Notice the arbitrarily large number. I am however able to fix this error by changing method calls from self.method(args) to self.method.__call__(args). I have seen this issue with both methods without arguments and methods with (a few) arguments.

Is this issue known? Is there some other way to get around this problem? I am working on a minimal example.

tekknolagi commented 1 month ago

See also #131

tekknolagi commented 1 month ago

and #129

tekknolagi commented 1 month ago

And https://github.com/cython/cython/issues/5880

mrigankpawagi commented 1 month ago

Thanks for directing me to those links, @tekknolagi. I suppose there is no solution from Cinder at the moment --should I just stick to __call__ for now?

tekknolagi commented 1 month ago

I don't know, I'm afraid. I've since left the Cinder team and all I can contribute to this discussion is that it seems vectorcall/nargsf related. I would recommend trying to rebuild your C extensions for Cinder and see if that fixes things.

mrigankpawagi commented 1 month ago

Okay, I will try that. Thanks for your time! I will close this issue for now.