On Sun, Mar 27, 2022 at 4:50 PM Justin Pryzby <pry...@telsasoft.com> wrote: > Actually, I suggest to remove those comments: > | "We check for failure here because..." > > That should be the rule rather than the exception, so shouldn't require > justifying why one might checks the return value of library and system calls.
I went for modifying the comment rather than removing it. I agree with you that checking for failure doesn't really require justification, but I think that in a case like this it is useful to explain what we know about why it might fail. > In bbsink_zstd_new(), I think you need to check to see if workers were > requested (same as the issue you found with "level"). Fixed. > src/backend/replication/basebackup_zstd.c: elog(ERROR, "could > not set zstd compression level to %d: %s", > src/bin/pg_basebackup/bbstreamer_gzip.c: pg_log_error("could > not set compression level %d: %s", > src/bin/pg_basebackup/bbstreamer_zstd.c: > pg_log_error("could not set compression level to: %d: %s", > > I'm not sure why these messages sometimes mention the current compression > method and sometimes don't. I suggest that they shouldn't - errcontext will > have the algorithm, and the user already specified it anyway. It'd allow the > compiler to merge strings. I don't think that errcontext() helps here. On the client side, it doesn't exist. On the server side, it's not in use. I do see STATEMENT: <whatever> in the server log when a replication command throws a server-side error, which is similar, but pg_basebackup doesn't display that STATEMENT line. I don't really know how to balance the legitimate desire for future messages against the also-legitimate desire for clarity about where things are failing. I'm slightly inclined to think that including the algorithm name is better, because options are in the end algorithm-specific, but it's certainly debatable. I would be interested in hearing other opinions... Here's an updated and rebased version of my patch. -- Robert Haas EDB: http://www.enterprisedb.com
v2-0001-Allow-parallel-zstd-compression-when-taking-a-bas.patch
Description: Binary data