[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Issue #20586 has been reported by ivoanjo (Ivo Anjo).
13 messages
2024/06/19
[ruby-core:118156] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"ko1 (Koichi Sasada) via ruby-core" <ruby-core@...>
Date:
2024-06-03 18:26:16 UTC
List:
ruby-core #118156
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4NCg0K DQpieXJvb3QgKEplYW4gQm91c3NpZXIpIHdyb3RlIGluICNub3RlLTExOg0KPiA+IEkgdGhpbmsg d2UgY2FuIHByb21vdGUgdGhpcyBjYXNlIGJlY2F1c2UgaXQgbWFrZXMgbWlub3IgZ2MgZmFzdGVy ICh0aGUgcHJvbW90ZWQgb2JqZWN0cyBjYW4gbm90IGJlIGZyZWVkIHVudGlsIG1ham9yIGdjLCBz byB0aGUgbnVtYmVyIG9mIGxpdmluZyBvYmplY3RzIGlzIHNhbWUpLg0KPiANCj4gSSB1bmRlcnN0 YW5kIHlvdXIgcG9pbnQsIGJ1dCBJIGZlYXIgaXQgY291bGQgYmUgY291bnRlci1wcm9kdWN0aXZl LiBXZSBzcGVjaWZpY2FsbHkgc3RvcHBlZCBkb2luZyB0aGF0IGluIFtGZWF0dXJlICMxOTY3OF0g YmVjYXVzZSB0aGVyZSBpcyBtYW55IHBhdHRlcm5zIGluIGNvbW1vbiBSdWJ5IGNvZGUgYmFzZXMg dGhhdCBhcmUgY2F1c2luZyBwcm9tb3Rpb24uDQo+IA0KPiBJJ2QgcmF0aGVyIHJ1biAqKm1pbm9y IEdDKiogb3V0IG9mIGJhbmQgZnJlcXVlbnRseSwgYW5kICoqbWFqb3IgR0MqKiBvdXQgb2YgYmFu ZCB2ZXJ5IHJhcmVseSwgYmVjYXVzZSB0aGUgcmF0aW8gb2YgZWZmZWN0aXZlbHkgcGVybWFuZW50 IG9iamVjdHMgdG8gZXBoZW1lcmFsIG9uZXMgdGVuZCB0byBiZSBsYXJnZSBpbiBsb25nIHJ1bm5p bmcgYXBwbGljYXRpb25zLg0KDQpJIHVuZGVyc3RhbmQgdGhlIHByb3Bvc2VkIGNvZGU6DQoNCiog aWYgb2xkIG9iamVjdCBgYWAgcmVmZXJzIHRvIHlvdW5nIG9iamVjdCBgYmAsIHB1dCBgYWAgaW50 byBhIHJlbWVtYmVyIHNldC4NCiogaWYgdGhlIGBhLT5iYCByZWZlcmVuY2UgbGVhdmVzLCBgYWAg d2lsbCBiZSBpbiBhIHJlbWVtYmVyIHNldC4NCiogaWYgdGhlIGBhLT5iYCByZWZlcmVuY2Ugd2Fz IGxvc3QgKGBhLmIgPSBuaWxgIGZvciBleGFtcGxlKSwgYGJgIHdpbGwgYmUgZnJlZSdlZCBhbmQg YGFgIGlzIG5vdCBpbiBhIHJlbWVtYmVyIHNldC4NCg0KSWYgdGhlcmUgaXMgbm8gbW9yZSBwZXJt YW5lbnQgb2JqZWN0cywgaXQgd29ya3Mgd2VsbCBhcyAjMTk2NzguDQpBbmQgb24gdGhlIHdlYiBy ZXF1ZXN0cywgbW9zdCBvZiBvYmplY3RzIHdpbGwgYmUgZnJlZSdlZCBhZnRlciB0aGUgcmVxdWVz dCBwcm9jZXNzaW5nIChvdGhlciB0aGFuIGNhY2hlZCBvYmplY3RzKS4NCg0KSSB1bmRlcnN0YW5k IHRoZSBsb2dpYyBzbyBubyBvYmplY3Rpb24gaGVyZS4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMDQ0MzogQWxsb3cgTWFqb3IgR0MncyB0 byBiZSBkaXNhYmxlZA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNDQzI2No YW5nZS0xMDg1OTQNCg0KKiBBdXRob3I6IGVpZ2h0Yml0cmFwdG9yIChNYXR0aGV3IFZhbGVudGlu ZS1Ib3VzZSkNCiogU3RhdHVzOiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpbW0dpdGh1YiBQUiAjMTA1OThdXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9y dWJ5L3B1bGwvMTA1OTgpDQoNCiMjIEJhY2tncm91bmQNCg0KUnVieSdzIEdDIHJ1bm5pbmcgZHVy aW5nIFJhaWxzIHJlcXVlc3RzIGNhbiBoYXZlIG5lZ2F0aXZlIGltcGFjdHMgb24gY3VycmVudGx5 DQpydW5uaW5nIHJlcXVlc3RzLCBjYXVzaW5nIGFwcGxpY2F0aW9ucyB0byBoYXZlIGhpZ2ggdGFp bC1sYXRlbmN5Lg0KDQpBIHRlY2huaXF1ZSB0byBtaXRpZ2F0ZSB0aGlzIGhpZ2ggdGFpbC1sYXRl bmN5IGlzIE91dC1vZi1iYW5kIEdDIChPT0JHQykuIFRoaXMNCmlzIGJhc2ljYWxseSB3aGVyZSB0 aGUgYXBwbGljYXRpb24gaXMgcnVuIHdpdGggR0MgZGlzYWJsZWQsIGFuZCB0aGVuIEdDIGlzDQpl eHBsaWNpdGx5IHN0YXJ0ZWQgYWZ0ZXIgZWFjaCByZXF1ZXN0LCBvciB3aGVuIG5vIHJlcXVlc3Rz IGFyZSBpbiBwcm9ncmVzcy4NCg0KVGhpcyBjYW4gcmVkdWNlIHRoZSB0YWlsIGxhdGVuY3ksIGJ1 dCBhbHNvIGludHJvZHVjZXMgcHJvYmxlbXMgb2YgaXRzIG93bi4gTG9uZw0KR0MgcGF1c2VzIGFm dGVyIGVhY2ggcmVxdWVzdCByZWR1Y2UgdGhyb3VnaHB1dC4gVGhpcyBpcyBtb3JlIHByb25vdW5j ZWQgb24NCnRocmVhZGluZyBzZXJ2ZXJzIGxpa2UgUHVtYSBiZWNhdXNlIGFsbCB0aGUgdGhyZWFk cyBoYXZlIHRvIGZpbmlzaCBwcm9jZXNzaW5nDQp1c2VyIHJlcXVlc3RzIGFuZCBiZSAicGF1c2Vk IiBiZWZvcmUgT09CR0MgY2FuIGJlIHRyaWdnZXJlZC4NCg0KVGhpcyB0aHJvdWdocHV0IGRlY3Jl YXNlIGhhcHBlbnMgZm9yIGEgY291cGxlIG9mIHJlYXNvbnM6DQoNCjEuIFRoZXJlIGFyZSBmZXcg aGV1cmlzdGljcyBhdmFpbGFibGUgZm9yIHVzZXJzIHRvIGRldGVybWluZSB3aGVuIEdDIHNob3Vs ZCBydW4sDQp0aGlzIG1lYW5zIHRoYXQgaW4gT09CR0Mgc2NlbmFyaW9zLCBpdCdzIHBvc3NpYmxl IHRoYXQgbWFqb3IgR0MncyBhcmUgYmVpbmcgcnVuDQptb3JlIHRoYW4gbmVjZXNzYXJ5LiAgMi4g VGhlIGxhY2sgb2YgYW55IEdDIGR1cmluZyBhIHJlcXVlc3QgbWVhbnMgdGhhdCBsb3RzIG9mDQpn YXJiYWdlIG9iamVjdHMgaGF2ZSBiZWVuIGNyZWF0ZWQgYW5kIG5vdCBjbGVhbmVkIHVwLCBzbyB0 aGUgcHJvY2VzcyBpcyB1c2luZw0KbW9yZSBtZW1vcnkgdGhhbiBpdCBzaG91bGQgLSByZXF1aXJp bmcgbWFqb3IgR0MncyBydW4gYXMgcGFydCBvZiBPT0JHQyB0byBkbw0KbW9yZSB3b3JrIGFuZCB0 aGVyZWZvcmUgdGFrZSBtb3JlIHRpbWUuDQoNClRoaXMgdGlja2V0IGF0dGVtcHRzIHRvIGFkZHJl c3MgdGhlc2UgaXNzdWVzIGJ5Og0KDQoxLiBQcm92aWRlIGBHQy5kaXNhYmxlX21ham9yYCBhbmQg aXRzIGFudG9ueW0gYEdDLmVuYWJsZV9tYWpvcmAgdG8gZGlzYWJsZSBhbmQNCmVuYWJsZSBvbmx5 IG1ham9yIEdDIDIuIFByb3ZpZGUgYEdDLm5lZWRzX21ham9yP2AgYXMgYSBiYXNpYyBoZXVyaXN0 aWMgYWxsb3dpbmcNCnVzZXJzIHRvIHRlbGwgd2hlbiBSdWJ5IHNob3VsZCBydW4gYSBNYWpvciBH Qy4NCg0KVGhlc2UgaWRlYXMgd2VyZSBvcmlnaW5hbGx5IHByb3Bvc2VkIGJ5IEBrbzEgYW5kIEBi eXJvb3QgaW4gW3RoaXMgcmFpbHMNCmlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vcmFpbHMvcmFp bHMvaXNzdWVzLzUwNDQ5KQ0KDQpEaXNhYmxpbmcgR0MgbWFqb3IncyB3b3VsZCBzdGlsbCBhbGxv dyBtaW5vciBHQydzIHRvIHJ1biBkdXJpbmcgdGhlIHJlcXVlc3QsDQphdm9pZGluZyB0aGUgYmFs bG9vbmluZyBtZW1vcnkgdXNhZ2UgY2F1c2VkIGJ5IG5vdCBydW5uaW5nIEdDIGF0IGFsbCwgYW5k DQpyZWR1Y2luZyB0aGUgdGltZSB0aGF0IGEgbWFqb3IgdGFrZXMgd2hlbiB3ZSBkbyBydW4gaXQs IGJlY2F1c2UgdGhlIG51cnNlcnkNCm9iamVjdHMgaGF2ZSBiZWVuIGNsZWFuZWQgdXAgZHVyaW5n IHRoZSByZXF1ZXN0IGFscmVhZHkgc28gdGhlcmUgaXMgbGVzcyB3b3JrDQpmb3IgYSBtYWpvciBH QyB0byBkby4NCg0KVGhpcyBjYW4gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBHQy5uZWVk c19tYWpvcj9gIHRvIHNlbGVjdGl2ZWx5IHJ1biBhbg0KT09CR0Mgb25seSB3aGVuIG5lY2Vzc2Fy eQ0KDQojIyBJbXBsZW1lbnRhdGlvbg0KDQpUaGlzIFBSIGFkZHMgMyBuZXcgbWV0aG9kcyB0byB0 aGUgYEdDYCBtb2R1bGUNCg0KLSBgR0MuZGlzYWJsZV9tYWpvcmAgVGhpcyBwcmV2ZW50cyBtYWpv ciBHQydzIGZyb20gcnVubmluZyBhdXRvbWF0aWNhbGx5LiBJdA0KICBkb2VzIG5vdCByZXN0cmlj dCBtaW5vcnMuIFdoZW4gYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2AgaXMgc2V0IGFu ZCBhDQogIEdDIGlzIHJ1biwgaW5zdGVhZCBvZiBydW5uaW5nIGEgbWFqb3IsIG5ldyBoZWFwIHBh Z2VzIHdpbGwgYmUgYWxsb2NhdGVkIGFuZCBhDQogIG1pbm9yIHJ1biBpbnN0ZWFkLiBgb2Jqc3Bh Y2UtPnJnZW5nYy5uZWVkX21ham9yX2djYCB3aWxsIHJlbWFpbiBzZXQgdW50aWwgYQ0KICBtYWpv ciBpcyBtYW51YWxseSBydW4uIElmIGEgbWFqb3IgaXMgbm90IG1hbnVhbGx5IHJ1biB0aGVuIHRo ZSBwcm9jZXNzIHdpbGwNCiAgZXZlbnR1YWxseSBydW4gb3V0IG9mIG1lbW9yeS4NCiAgDQogIFdo ZW4gbWFqb3IgR0MncyBhcmUgZGlzYWJsZWQsIG9iamVjdCBwcm9tb3Rpb24gaXMgZGlzYWJsZWQu IFRoYXQgaXMsIG5vDQogIG9iamVjdHMgd2lsbCBpbmNyZW1lbnQgdGhlaXIgYWdlcyBkdXJpbmcg YSBtaW5vciBHQy4gVGhpcyBpcyB0byBhdHRlbXB0IHRvDQogIG1pbmltaXNlIGhlYXAgZ3Jvd3Ro IGR1cmluZyB0aGUgcGVyaW9kIGJldHdlZW4gbWFqb3IgR0MncywgYnkgcmVzdHJpY3RpbmcgdGhl DQogIG51bWJlciBvZiBvbGQtZ2VuIG9iamVjdHMgdGhhdCB3aWxsIHJlbWFpbiB1bmNvbnNpZGVy ZWQgYnkgdGhlIEdDIHVudGlsIHRoZQ0KICBuZXh0IG1ham9yLg0KICANCiAgV2hlbiBgR0Muc3Rh cnRgIGlzIHJ1biwgdGhlbiBtYWpvciBHQydzIHdpbGwgYmUgZW5hYmxlZCwgYSBHQyB0cmlnZ2Vy ZWQgd2l0aA0KICB0aGUgb3B0aW9ucyBwYXNzZWQgdG8gYEdDLnN0YXJ0YCwgYW5kIHRoZW4gYGRp c2FibGVfbWFqb3JgIHdpbGwgYmUgc2V0IHRvIHRoZQ0KICBzdGF0ZSBpdCB3YXMgaW4gYmVmb3Jl IGBHQy5zdGFydGAgd2FzIGNhbGxlZC4NCiAgDQotIGBHQy5lbmFibGVfbWFqb3JgIFRoaXMgc2lt cGx5IHVuc2V0cyB0aGUgYml0IHByZXZlbnRpbmcgbWFqb3IgR0Mncy4gVGhpcyB3aWxsDQogIHJl dmVydCB0aGUgR0MgdG8gbm9ybWFsIGdlbmVyYXRpb25hbCBiZWhhdmlvdXIuIEV2ZXJ5dGhpbmcg YmVoYXZlcyBhcyBkZWZhdWx0DQogIGFnYWluLg0KDQotIGBHQy5uZWVkc19tYWpvcj9gIFRoaXMg ZXhwb3NlcyB0aGUgdmFsdWUgb2YgYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2ANCiAg dG8gdGhlIHVzZXIgbGV2ZWwgQVBJLiBUaGlzIGlzIGFscmVhZHkgZXhwb3NlZCBpbg0KICBgR0Mu bGF0ZXN0X2djX2luZm9bOm5lZWRfbWFqb3JfYnldYCBidXQgSSBmZWx0IHRoYXQgYSBzaW1wbGVy IGludGVyZmFjZSB3b3VsZA0KICBtYWtlIHRoaXMgZWFzaWVyIHRvIHVzZSBhbmQgcmVzdWx0IGlu IG1vcmUgcmVhZGFibGUgY29kZS4gZWcuDQogIA0KYGBgDQpvdXRfb2ZfYmFuZCBkbyANCiAgR0Mu c3RhcnQgaWYgR0MubmVlZHNfbWFqb3I/ICANCmVuZCANCmBgYA0KDQpCZWNhdXNlIG9iamVjdCBh Z2luZyBpcyBkaXNhYmxlZCB3aGVuIG1ham9ycyBhcmUgZGlzYWJsZWQgaXQgaXMgcmVjb21tZW5k ZWQgdG8NCnVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYFByb2Nlc3Mud2FybXVwYCwgd2hp Y2ggd2lsbCBwcmVwYXJlIHRoZSBoZWFwIGJ5DQpydW5uaW5nIGEgbWFqb3IgR0MsIGNvbXBhY3Rp bmcgdGhlIGhlYXAsIGFuZCBwcm9tb3RpbmcgZXZlcnkgcmVtYWluaW5nIG9iamVjdCB0bw0Kb2xk LWdlbi4gVGhpcyBlbnN1cmVzIHRoYXQgbWlub3IgR0MncyBhcmUgcnVubmluZyBvdmVyIHRoZSBz bWFsbGV0cyBwb3NzaWJsZSBzZXQNCm9mIHlvdW5nIG9iamVjdHMgd2hlbiBgR0MuZGlzYWJsZV9t YWpvcmAgaXMgdHJ1ZS4NCg0KIyMgQmVuY2htYXJrcw0KDQpXZSByYW4gc29tZSB0ZXN0cyBpbiBw cm9kdWN0aW9uIG9uIFNob3BpZnkncyBjb3JlIG1vbm9saXRoIG92ZXIgYSB3ZWVrZW5kIGFuZA0K Zm91bmQgdGhhdDoNCg0KKipNZWFuIHRpbWUgc3BlbnQgaW4gR0MsIGFzIHdlbGwgYXMgcDk5Ljkg YW5kIHA5OS45OSBHQyB0aW1lcyBhcmUgYWxsDQppbXByb3ZlZC4qKiANCg0KPGltZyB3aWR0aD0i MTAwMCIgYWx0PSJTY3JlZW5zaG90IDIwMjQtMDQtMjIgYXQgMTYgNDEgNDkiDQpzcmM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvYXNzZXRzLzMxODY5LzZjZmY1YjExLTJlMjEtNDBjMS1i Yjg0LWQ5OTRlMGUxNzk4ZCI+DQoNCioqcDk5IEdDIHRpbWUgaXMgc2xpZ2h0bHkgaGlnaGVyLioq IA0KDQo8aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA0 NCA1NSINCnNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvZGM2 NDVjYmUtOTQ5NS00NmYwLTg0ODUtMjRlNzkwYzQyZjMyIj4NCg0KV2UncmUgcnVubmluZyBmYXIg ZmV3ZXIgT09CR0MgbWFqb3IgR0MncyBub3cgdGhhdCB3ZSBoYXZlIGBHQy5uZWVkc19tYWpvcj9g IHRoYW4NCndlIHdlcmUgYmVmb3JlLCBhbmQgd2UgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgY29udHJp YnV0aW5nIHRvIGEgc2xpZ2h0bHkgaW5jcmVhc2VkDQpudW1iZXIgb2YgbWlub3IgR0Mncy4gcmFp c2luZyB0aGUgcDk5IHNsaWdodGx5Lg0KDQoqKkFwcCByZXNwb25zZSB0aW1lcyBhcmUgYWxsIGlt cHJvdmVkKioNCg0KV2Ugc2VlIGEgfjIlIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRp bWVzIHdoZW4gY29tcGFyZWQgYWdhaW5zdHN0YW5kYXJkIEdDIA0KKH43JSBwOTksIH4zJSBwOTku OSBhbmQgfjQlIHA5OS45OSkuDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAy MDI0LTA0LTIzIGF0IDA5IDI3IDE3IiBzcmM9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Fzc2V0 cy8zMTg2OS83MGU4MWZhNS03N2IyLTQ2OWEtODk0NS04OGJmOGY4ZmVmZTkiPg0KDQpUaGlzIGRy b3BzIHNsaWdodGx5IHRvIGFuIGEgfjElIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRp bWVzIHdoZW4gY29tcGFyZWQNCmFnYWluc3Qgb3VyIG5vcm1hbCBPT0JHQyBhcHByb2FjaCAgKH42 JSBwOTksIH4yJSBwOTkuOSBhbmQgfjMlIHA5OS45OSkuDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFs dD0iU2NyZWVuc2hvdCAyMDI0LTA0LTIzIGF0IDA5IDI3IDI5IiBzcmM9Imh0dHBzOi8vZ2lzdC5n aXRodWIuY29tL2Fzc2V0cy8zMTg2OS9jYmFhMzgwNy0wY2QxLTRkYmEtYTVlNi1iOWRmOTEwMjRk NzMiPg0KDQoNCkVESVQ6IHRvIGNvcnJlY3QgYSBmb3JtdWxhIGVycm9yIGluIHRoZSBvcmlnaW5h bCBBdmVyYWdlIGNoYXJ0cywgbnVtYmVycyB1cGRhdGVkLiANCg0KLS0tRmlsZXMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQ2FwdHVyZSBk4oCZZcyBY3JhbiAyMDI0LTA0LTIyIGHM gCAxOC40MS41Mi5wbmcgKDI3OSBLQikNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnLw0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1 YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVu c3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5v cmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9w b3N0b3JpdXMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv