Hi,
On 2024-12-14 09:29:12 +0100, Alvaro Herrera wrote:
> On 2024-Dec-11, Andres Freund wrote:
>
> > One thing that I think we should definitely do is to include more detail in
> > the error message. mdzeroextend()'s error messages don't include how many
> > blocks the relation was to be extended by. Neither mdextend() nor
> > mdzeroextend() include the offset at which the extension failed.
>
> I proposed a patch at
> https://postgr.es/m/202409110955.6njbwzm4ocus@alvherre.pgsql
>
> FileFallocate failure:
> errmsg("could not allocate additional %lld bytes from position %lld in file \"%s\": %m",
> (long long) addbytes, (long long) seekpos,
> FilePathName(v->mdfd_vfd)),
>
> FileZero failure:
> errmsg("could not zero additional %lld bytes from position %lld file \"%s\": %m",
> (long long) addbytes, (long long) seekpos,
> FilePathName(v->mdfd_vfd)),
Personally I don't like the obfuscation of "allocate" and "zero" vs just
naming the function names. But I guess that's just taste thing.
> I'm not sure that we need to talk about blocks, given that the
> underlying syscalls don't work in blocks anyway. IMO we should just
> report bytes.
When looking for problems it's considerably more work with bytes, because - at
least for me - the large number is hard to compare quickly and to know how
aggressively we extended also requires to translate to blocks.
Greetings,
Andres Freund