Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
0298-stdlib-Make-ets-tab2file-always-truncate-f...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0298-stdlib-Make-ets-tab2file-always-truncate-file.patch of Package erlang
From 4b2efb65d862a6c3c9e5b834c3a157ce007ee8af Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Mon, 15 May 2023 16:02:43 +0200 Subject: [PATCH] stdlib: Make ets:tab2file always truncate file to avoid {repaired, ...} returned from disk_log:open if raced by concurrent file creator. --- lib/kernel/doc/src/disk_log.xml | 4 ++-- lib/stdlib/src/ets.erl | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/kernel/doc/src/disk_log.xml b/lib/kernel/doc/src/disk_log.xml index 46ed711906..275d050fe8 100644 --- a/lib/kernel/doc/src/disk_log.xml +++ b/lib/kernel/doc/src/disk_log.xml @@ -780,8 +780,8 @@ no automatic repair is attempted. Instead, the tuple <c>{error, {need_repair, <anno>Log</anno>}}</c> is returned if an attempt is made to open a corrupt log file. - If <c>truncate</c> is specified, the log file becomes - truncated, creating an empty log. Defaults to + If <c>truncate</c> is specified, the log file becomes truncated, + creating an empty log, regardless of previous content. Defaults to <c>true</c>, which has no effect on logs opened in read-only mode. </p> diff --git a/lib/stdlib/src/ets.erl b/lib/stdlib/src/ets.erl index 979a75b231..0f1c160322 100644 --- a/lib/stdlib/src/ets.erl +++ b/lib/stdlib/src/ets.erl @@ -812,7 +812,8 @@ tab2file(Table, File, Options) -> _ -> throw(eaccess) end, Name = make_ref(), - case disk_log:open([{name, Name}, {file, File}]) of + case disk_log:open([{name, Name}, {file, File}, + {repair, truncate}]) of {ok, Name} -> ok; {error, Reason} -> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor