git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC/PATCH 0/4] improving svn-fe error handling

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Dec 28, 2010, 10:45 UTC
Message-ID
<20101228104503.GA5422@burratino>
Hi,

Currently malformed streams (e.g., ending early) and input errors when reading a dump file can cause svn-fe to dereference a NULL pointer or otherwise act in a confusing way. Especially since incremental imports work now, I think a saner behavior is to error out with a clear error message; the operator can then fix the problem and resume. This series is an attempt in that direction.

Still to do:
 - add tests (reading /dev/full?  how else to provoke an input error?)
 - change buffer_read_string to disallow short reads, to simplify

I am sending it out now because patches 1, 2, and 3 make API changes that I find convenient, so I'd be interested in your thoughts before I commit too heavily to a bad idea.

Patch 1 introduces buffer_ferror, to check if errors were encountered reading from the line_buffer. Unlike buffer_deinit, this can be used after any operation so it can be used early, when errno is still valid.

Patches 2 and 3 make operations that can be partially completed still return some indication of success or failure.

Patch 4 is an example application, using the new API to make svn-fe a little better at detecting malformed dump files.

Thoughts?
Jonathan Nieder (4):
  vcs-svn: allow input errors to be detected promptly
  vcs-svn: make buffer_skip_bytes return length read
  vcs-svn: make buffer_copy_bytes return length read
  vcs-svn: improve reporting of input errors
 vcs-svn/fast_export.c   |   13 +++++++++-
 vcs-svn/line_buffer.c   |   36 ++++++++++++++++++-------------
 vcs-svn/line_buffer.h   |    6 +++-
 vcs-svn/line_buffer.txt |    3 +-
 vcs-svn/svndump.c       |   53 +++++++++++++++++++++++++++++++++++++---------
 5 files changed, 80 insertions(+), 31 deletions(-)
Next: Jonathan Nieder
Message 1 of 6 in “improving svn-fe error handling”
  1. 0/4 improving svn-fe error handlingJonathan Nieder, Dec 28, 2010
  2. 1/4 vcs-svn: allow input errors to be detected promptlyJonathan Nieder, Dec 28, 2010
  3. 2/4 vcs-svn: make buffer_skip_bytes return length readJonathan Nieder, Dec 28, 2010
  4. 3/4 vcs-svn: make buffer_copy_bytes return length readJonathan Nieder, Dec 28, 2010
  5. 4/4 vcs-svn: improve reporting of input errorsJonathan Nieder, Dec 28, 2010
  6. Jonathan NiederJan 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.