[#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:118167] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"eightbitraptor (Matthew Valentine-House) via ruby-core" <ruby-core@...>
Date:
2024-06-04 08:21:03 UTC
List:
ruby-core #118167
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZWlnaHRiaXRyYXB0b3IgKE1hdHRoZXcg VmFsZW50aW5lLUhvdXNlKS4NCg0KDQplaWdodGJpdHJhcHRvciAoTWF0dGhldyBWYWxlbnRpbmUt SG91c2UpIHdyb3RlIGluICNub3RlLTE4Og0KPiBUaGFua3MgQGtvMS4gSSd2ZSB1cGRhdGVkIHRo ZSBkb2N1bWVudGF0aW9uIGFzIHBlciBAbWF0eiByZXF1ZXN0LCB+fnNvIEknbGwgbWVyZ2UgYW5k IGNsb3NlIHRoaXMgbm93Ln5+DQoNCkkndmUgZGlzY3Vzc2VkIHRoaXMgZnVydGhlciB3aXRoIEBr bzEgb24gU2xhY2ssIHdobyB3b3VsZCBsaWtlIHRoZSBuYW1lcyBjbGFyaWZpZWQgYXQgdGhlIG5l eHQgZGV2IG1lZXRpbmcuIFNvIHRoaXMgdGlja2V0IHdpbGwgcmVtYWluIG9wZW4gZm9yIG5vdy4N Cg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUg IzIwNDQzOiBBbGxvdyBNYWpvciBHQydzIHRvIGJlIGRpc2FibGVkDQpodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy9pc3N1ZXMvMjA0NDMjY2hhbmdlLTEwODYwOA0KDQoqIEF1dGhvcjogZWlnaHRi aXRyYXB0b3IgKE1hdHRoZXcgVmFsZW50aW5lLUhvdXNlKQ0KKiBTdGF0dXM6IE9wZW4NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCltbR2l0aHViIFBSICMxMDU5OF1d KGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xMDU5OCkNCg0KIyMgQmFja2dyb3Vu ZA0KDQpSdWJ5J3MgR0MgcnVubmluZyBkdXJpbmcgUmFpbHMgcmVxdWVzdHMgY2FuIGhhdmUgbmVn YXRpdmUgaW1wYWN0cyBvbiBjdXJyZW50bHkNCnJ1bm5pbmcgcmVxdWVzdHMsIGNhdXNpbmcgYXBw bGljYXRpb25zIHRvIGhhdmUgaGlnaCB0YWlsLWxhdGVuY3kuDQoNCkEgdGVjaG5pcXVlIHRvIG1p dGlnYXRlIHRoaXMgaGlnaCB0YWlsLWxhdGVuY3kgaXMgT3V0LW9mLWJhbmQgR0MgKE9PQkdDKS4g VGhpcw0KaXMgYmFzaWNhbGx5IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBpcyBydW4gd2l0aCBHQyBk aXNhYmxlZCwgYW5kIHRoZW4gR0MgaXMNCmV4cGxpY2l0bHkgc3RhcnRlZCBhZnRlciBlYWNoIHJl cXVlc3QsIG9yIHdoZW4gbm8gcmVxdWVzdHMgYXJlIGluIHByb2dyZXNzLg0KDQpUaGlzIGNhbiBy ZWR1Y2UgdGhlIHRhaWwgbGF0ZW5jeSwgYnV0IGFsc28gaW50cm9kdWNlcyBwcm9ibGVtcyBvZiBp dHMgb3duLiBMb25nDQpHQyBwYXVzZXMgYWZ0ZXIgZWFjaCByZXF1ZXN0IHJlZHVjZSB0aHJvdWdo cHV0LiBUaGlzIGlzIG1vcmUgcHJvbm91bmNlZCBvbg0KdGhyZWFkaW5nIHNlcnZlcnMgbGlrZSBQ dW1hIGJlY2F1c2UgYWxsIHRoZSB0aHJlYWRzIGhhdmUgdG8gZmluaXNoIHByb2Nlc3NpbmcNCnVz ZXIgcmVxdWVzdHMgYW5kIGJlICJwYXVzZWQiIGJlZm9yZSBPT0JHQyBjYW4gYmUgdHJpZ2dlcmVk Lg0KDQpUaGlzIHRocm91Z2hwdXQgZGVjcmVhc2UgaGFwcGVucyBmb3IgYSBjb3VwbGUgb2YgcmVh c29uczoNCg0KMS4gVGhlcmUgYXJlIGZldyBoZXVyaXN0aWNzIGF2YWlsYWJsZSBmb3IgdXNlcnMg dG8gZGV0ZXJtaW5lIHdoZW4gR0Mgc2hvdWxkIHJ1biwNCnRoaXMgbWVhbnMgdGhhdCBpbiBPT0JH QyBzY2VuYXJpb3MsIGl0J3MgcG9zc2libGUgdGhhdCBtYWpvciBHQydzIGFyZSBiZWluZyBydW4N Cm1vcmUgdGhhbiBuZWNlc3NhcnkuICAyLiBUaGUgbGFjayBvZiBhbnkgR0MgZHVyaW5nIGEgcmVx dWVzdCBtZWFucyB0aGF0IGxvdHMgb2YNCmdhcmJhZ2Ugb2JqZWN0cyBoYXZlIGJlZW4gY3JlYXRl ZCBhbmQgbm90IGNsZWFuZWQgdXAsIHNvIHRoZSBwcm9jZXNzIGlzIHVzaW5nDQptb3JlIG1lbW9y eSB0aGFuIGl0IHNob3VsZCAtIHJlcXVpcmluZyBtYWpvciBHQydzIHJ1biBhcyBwYXJ0IG9mIE9P QkdDIHRvIGRvDQptb3JlIHdvcmsgYW5kIHRoZXJlZm9yZSB0YWtlIG1vcmUgdGltZS4NCg0KVGhp cyB0aWNrZXQgYXR0ZW1wdHMgdG8gYWRkcmVzcyB0aGVzZSBpc3N1ZXMgYnk6DQoNCjEuIFByb3Zp ZGUgYEdDLmRpc2FibGVfbWFqb3JgIGFuZCBpdHMgYW50b255bSBgR0MuZW5hYmxlX21ham9yYCB0 byBkaXNhYmxlIGFuZA0KZW5hYmxlIG9ubHkgbWFqb3IgR0MgMi4gUHJvdmlkZSBgR0MubmVlZHNf bWFqb3I/YCBhcyBhIGJhc2ljIGhldXJpc3RpYyBhbGxvd2luZw0KdXNlcnMgdG8gdGVsbCB3aGVu IFJ1Ynkgc2hvdWxkIHJ1biBhIE1ham9yIEdDLg0KDQpUaGVzZSBpZGVhcyB3ZXJlIG9yaWdpbmFs bHkgcHJvcG9zZWQgYnkgQGtvMSBhbmQgQGJ5cm9vdCBpbiBbdGhpcyByYWlscw0KaXNzdWVdKGh0 dHBzOi8vZ2l0aHViLmNvbS9yYWlscy9yYWlscy9pc3N1ZXMvNTA0NDkpDQoNCkRpc2FibGluZyBH QyBtYWpvcidzIHdvdWxkIHN0aWxsIGFsbG93IG1pbm9yIEdDJ3MgdG8gcnVuIGR1cmluZyB0aGUg cmVxdWVzdCwNCmF2b2lkaW5nIHRoZSBiYWxsb29uaW5nIG1lbW9yeSB1c2FnZSBjYXVzZWQgYnkg bm90IHJ1bm5pbmcgR0MgYXQgYWxsLCBhbmQNCnJlZHVjaW5nIHRoZSB0aW1lIHRoYXQgYSBtYWpv ciB0YWtlcyB3aGVuIHdlIGRvIHJ1biBpdCwgYmVjYXVzZSB0aGUgbnVyc2VyeQ0Kb2JqZWN0cyBo YXZlIGJlZW4gY2xlYW5lZCB1cCBkdXJpbmcgdGhlIHJlcXVlc3QgYWxyZWFkeSBzbyB0aGVyZSBp cyBsZXNzIHdvcmsNCmZvciBhIG1ham9yIEdDIHRvIGRvLg0KDQpUaGlzIGNhbiBiZSB1c2VkIGlu IGNvbWJpbmF0aW9uIHdpdGggYEdDLm5lZWRzX21ham9yP2AgdG8gc2VsZWN0aXZlbHkgcnVuIGFu DQpPT0JHQyBvbmx5IHdoZW4gbmVjZXNzYXJ5DQoNCiMjIEltcGxlbWVudGF0aW9uDQoNClRoaXMg UFIgYWRkcyAzIG5ldyBtZXRob2RzIHRvIHRoZSBgR0NgIG1vZHVsZQ0KDQotIGBHQy5kaXNhYmxl X21ham9yYCBUaGlzIHByZXZlbnRzIG1ham9yIEdDJ3MgZnJvbSBydW5uaW5nIGF1dG9tYXRpY2Fs bHkuIEl0DQogIGRvZXMgbm90IHJlc3RyaWN0IG1pbm9ycy4gV2hlbiBgb2Jqc3BhY2UtPnJnZW5n Yy5uZWVkX21ham9yX2djYCBpcyBzZXQgYW5kIGENCiAgR0MgaXMgcnVuLCBpbnN0ZWFkIG9mIHJ1 bm5pbmcgYSBtYWpvciwgbmV3IGhlYXAgcGFnZXMgd2lsbCBiZSBhbGxvY2F0ZWQgYW5kIGENCiAg bWlub3IgcnVuIGluc3RlYWQuIGBvYmpzcGFjZS0+cmdlbmdjLm5lZWRfbWFqb3JfZ2NgIHdpbGwg cmVtYWluIHNldCB1bnRpbCBhDQogIG1ham9yIGlzIG1hbnVhbGx5IHJ1bi4gSWYgYSBtYWpvciBp cyBub3QgbWFudWFsbHkgcnVuIHRoZW4gdGhlIHByb2Nlc3Mgd2lsbA0KICBldmVudHVhbGx5IHJ1 biBvdXQgb2YgbWVtb3J5Lg0KICANCiAgV2hlbiBtYWpvciBHQydzIGFyZSBkaXNhYmxlZCwgb2Jq ZWN0IHByb21vdGlvbiBpcyBkaXNhYmxlZC4gVGhhdCBpcywgbm8NCiAgb2JqZWN0cyB3aWxsIGlu Y3JlbWVudCB0aGVpciBhZ2VzIGR1cmluZyBhIG1pbm9yIEdDLiBUaGlzIGlzIHRvIGF0dGVtcHQg dG8NCiAgbWluaW1pc2UgaGVhcCBncm93dGggZHVyaW5nIHRoZSBwZXJpb2QgYmV0d2VlbiBtYWpv ciBHQydzLCBieSByZXN0cmljdGluZyB0aGUNCiAgbnVtYmVyIG9mIG9sZC1nZW4gb2JqZWN0cyB0 aGF0IHdpbGwgcmVtYWluIHVuY29uc2lkZXJlZCBieSB0aGUgR0MgdW50aWwgdGhlDQogIG5leHQg bWFqb3IuDQogIA0KICBXaGVuIGBHQy5zdGFydGAgaXMgcnVuLCB0aGVuIG1ham9yIEdDJ3Mgd2ls bCBiZSBlbmFibGVkLCBhIEdDIHRyaWdnZXJlZCB3aXRoDQogIHRoZSBvcHRpb25zIHBhc3NlZCB0 byBgR0Muc3RhcnRgLCBhbmQgdGhlbiBgZGlzYWJsZV9tYWpvcmAgd2lsbCBiZSBzZXQgdG8gdGhl DQogIHN0YXRlIGl0IHdhcyBpbiBiZWZvcmUgYEdDLnN0YXJ0YCB3YXMgY2FsbGVkLg0KICANCi0g YEdDLmVuYWJsZV9tYWpvcmAgVGhpcyBzaW1wbHkgdW5zZXRzIHRoZSBiaXQgcHJldmVudGluZyBt YWpvciBHQydzLiBUaGlzIHdpbGwNCiAgcmV2ZXJ0IHRoZSBHQyB0byBub3JtYWwgZ2VuZXJhdGlv bmFsIGJlaGF2aW91ci4gRXZlcnl0aGluZyBiZWhhdmVzIGFzIGRlZmF1bHQNCiAgYWdhaW4uDQoN Ci0gYEdDLm5lZWRzX21ham9yP2AgVGhpcyBleHBvc2VzIHRoZSB2YWx1ZSBvZiBgb2Jqc3BhY2Ut PnJnZW5nYy5uZWVkX21ham9yX2djYA0KICB0byB0aGUgdXNlciBsZXZlbCBBUEkuIFRoaXMgaXMg YWxyZWFkeSBleHBvc2VkIGluDQogIGBHQy5sYXRlc3RfZ2NfaW5mb1s6bmVlZF9tYWpvcl9ieV1g IGJ1dCBJIGZlbHQgdGhhdCBhIHNpbXBsZXIgaW50ZXJmYWNlIHdvdWxkDQogIG1ha2UgdGhpcyBl YXNpZXIgdG8gdXNlIGFuZCByZXN1bHQgaW4gbW9yZSByZWFkYWJsZSBjb2RlLiBlZy4NCiAgDQpg YGANCm91dF9vZl9iYW5kIGRvIA0KICBHQy5zdGFydCBpZiBHQy5uZWVkc19tYWpvcj8gIA0KZW5k IA0KYGBgDQoNCkJlY2F1c2Ugb2JqZWN0IGFnaW5nIGlzIGRpc2FibGVkIHdoZW4gbWFqb3JzIGFy ZSBkaXNhYmxlZCBpdCBpcyByZWNvbW1lbmRlZCB0bw0KdXNlIHRoaXMgaW4gY29uanVuY3Rpb24g d2l0aCBgUHJvY2Vzcy53YXJtdXBgLCB3aGljaCB3aWxsIHByZXBhcmUgdGhlIGhlYXAgYnkNCnJ1 bm5pbmcgYSBtYWpvciBHQywgY29tcGFjdGluZyB0aGUgaGVhcCwgYW5kIHByb21vdGluZyBldmVy eSByZW1haW5pbmcgb2JqZWN0IHRvDQpvbGQtZ2VuLiBUaGlzIGVuc3VyZXMgdGhhdCBtaW5vciBH QydzIGFyZSBydW5uaW5nIG92ZXIgdGhlIHNtYWxsZXRzIHBvc3NpYmxlIHNldA0Kb2YgeW91bmcg b2JqZWN0cyB3aGVuIGBHQy5kaXNhYmxlX21ham9yYCBpcyB0cnVlLg0KDQojIyBCZW5jaG1hcmtz DQoNCldlIHJhbiBzb21lIHRlc3RzIGluIHByb2R1Y3Rpb24gb24gU2hvcGlmeSdzIGNvcmUgbW9u b2xpdGggb3ZlciBhIHdlZWtlbmQgYW5kDQpmb3VuZCB0aGF0Og0KDQoqKk1lYW4gdGltZSBzcGVu dCBpbiBHQywgYXMgd2VsbCBhcyBwOTkuOSBhbmQgcDk5Ljk5IEdDIHRpbWVzIGFyZSBhbGwNCmlt cHJvdmVkLioqIA0KDQo8aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0y MiBhdCAxNiA0MSA0OSINCnNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMv MzE4NjkvNmNmZjViMTEtMmUyMS00MGMxLWJiODQtZDk5NGUwZTE3OThkIj4NCg0KKipwOTkgR0Mg dGltZSBpcyBzbGlnaHRseSBoaWdoZXIuKiogDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2Ny ZWVuc2hvdCAyMDI0LTA0LTIyIGF0IDE2IDQ0IDU1Ig0Kc3JjPSJodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L2Fzc2V0cy8zMTg2OS9kYzY0NWNiZS05NDk1LTQ2ZjAtODQ4NS0yNGU3OTBjNDJm MzIiPg0KDQpXZSdyZSBydW5uaW5nIGZhciBmZXdlciBPT0JHQyBtYWpvciBHQydzIG5vdyB0aGF0 IHdlIGhhdmUgYEdDLm5lZWRzX21ham9yP2AgdGhhbg0Kd2Ugd2VyZSBiZWZvcmUsIGFuZCB3ZSBi ZWxpZXZlIHRoYXQgdGhpcyBpcyBjb250cmlidXRpbmcgdG8gYSBzbGlnaHRseSBpbmNyZWFzZWQN Cm51bWJlciBvZiBtaW5vciBHQydzLiByYWlzaW5nIHRoZSBwOTkgc2xpZ2h0bHkuDQoNCioqQXBw IHJlc3BvbnNlIHRpbWVzIGFyZSBhbGwgaW1wcm92ZWQqKg0KDQpXZSBzZWUgYSB+MiUgcmVkdWN0 aW9uIGluIGF2ZXJhZ2UgcmVzcG9uc2UgdGltZXMgd2hlbiBjb21wYXJlZCBhZ2FpbnN0c3RhbmRh cmQgR0MgDQoofjclIHA5OSwgfjMlIHA5OS45IGFuZCB+NCUgcDk5Ljk5KS4NCg0KPGltZyB3aWR0 aD0iMTAwMCIgYWx0PSJTY3JlZW5zaG90IDIwMjQtMDQtMjMgYXQgMDkgMjcgMTciIHNyYz0iaHR0 cHM6Ly9naXN0LmdpdGh1Yi5jb20vYXNzZXRzLzMxODY5LzcwZTgxZmE1LTc3YjItNDY5YS04OTQ1 LTg4YmY4ZjhmZWZlOSI+DQoNClRoaXMgZHJvcHMgc2xpZ2h0bHkgdG8gYW4gYSB+MSUgcmVkdWN0 aW9uIGluIGF2ZXJhZ2UgcmVzcG9uc2UgdGltZXMgd2hlbiBjb21wYXJlZA0KYWdhaW5zdCBvdXIg bm9ybWFsIE9PQkdDIGFwcHJvYWNoICAofjYlIHA5OSwgfjIlIHA5OS45IGFuZCB+MyUgcDk5Ljk5 KS4NCg0KPGltZyB3aWR0aD0iMTAwMCIgYWx0PSJTY3JlZW5zaG90IDIwMjQtMDQtMjMgYXQgMDkg MjcgMjkiIHNyYz0iaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vYXNzZXRzLzMxODY5L2NiYWEzODA3 LTBjZDEtNGRiYS1hNWU2LWI5ZGY5MTAyNGQ3MyI+DQoNCg0KRURJVDogdG8gY29ycmVjdCBhIGZv cm11bGEgZXJyb3IgaW4gdGhlIG9yaWdpbmFsIEF2ZXJhZ2UgY2hhcnRzLCBudW1iZXJzIHVwZGF0 ZWQuIA0KDQotLS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDYXB0dXJl IGTigJllzIFjcmFuIDIwMjQtMDQtMjIgYcyAIDE4LjQxLjUyLnBuZyAoMjc5IEtCKQ0KDQoNCi0t IA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNv cmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5 LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9t bC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL3Bvc3Rvcml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVi eS1sYW5nLm9yZy8=