53100 \u2014 disk_full
53100 reports the explicit short-write branch of a file write. Fixed paths cover base-backup output and relation-file extension; the diagnostic names the file, partial byte count, requested count, and offset or block.
English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- aliases
- Unknown
- class name
- Insufficient Resources
- condition name
- disk_full
- lang
- en
- sqlstate
- 53100
Definition PG 18
53100
At a glance {#at-a-glance}
53100 reports the explicit short-write branch of a file write. Fixed paths cover base-backup output and relation-file extension; the diagnostic names the file, partial byte count, requested count, and offset or block.
Meaning {#meaning}
The short-write messages carry the target file, bytes written versus requested, and an offset or block, with the hint Check free disk space.. The same md.c function first handles a negative FileWrite result through errcode_for_file_access() and %m; in the fixed helper's saved-errno switch, ENOSPC maps to 53100, while EFBIG and EDQUOT are not listed and therefore take its ERRCODE_INTERNAL_ERROR default. This is a storage-write boundary, not a generic SQL data error or proof that the host volume is full.
Diagnosis {#diagnosis}
Identify the filesystem and target path from the message, then check free space, quota, mount state, write errors, and whether the database or backup destination is the affected volume. Compare the offset/block and partial byte count with the operation and correlate server logs. If the primary is could not ...: %m rather than the short-write template, inspect the saved errno: the fixed helper maps ENOSPC to 53100, but sends unlisted EFBIG and EDQUOT through its internal-error default. Do not relabel an errno-specific SQLSTATE as 53100.
Response {#response}
Free or provision capacity on the named filesystem, correct the reported write condition, or redirect the operation to a suitable destination. Treat a partial base backup or relation write as incomplete until the operation has been validated; resume or retry only under that operation's documented recovery procedure. If this ERROR occurs inside an explicit transaction, use ROLLBACK or ROLLBACK TO SAVEPOINT before retrying; in autocommit, retry only after the storage cause is corrected. Do not create disk pressure on a user instance to test this code.
Versions {#versions}
The locked catalogue records this condition from 7.4; the cited write paths are PostgreSQL 18.6 source. No disk-full runtime was run.
Related {#related}
Sources {#sources}
src/backend/backup/basebackup_server.c#L177-L182
src/backend/storage/smgr/md.c#L521-L526
src/backend/storage/smgr/md.c#L512-L526
src/backend/utils/error/elog.c#L868-L938
The structured evidence record records fixed messages and the source/runtime boundary.
Compare versions
SQLSTATE evidence and recorded runtime versions
claims · identity
{
"claim_id": "identity",
"limits": "",
"method": "Read fixed definition.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "53100 is disk_full in SQLSTATE Class 53."
}claims · resolved-paths
{
"claim_id": "resolved-paths",
"limits": "Source confirmation is not natural runtime.",
"method": "Read complete fixed source contexts.",
"position": 1,
"runtime": [],
"sources": [
"src.path.0",
"src.path.1",
"src.path.2",
"src.path.3"
],
"statement": "The cited PostgreSQL 18.6 source paths support the representative resource and object-state mechanisms described."
}claims · errno-boundary
{
"claim_id": "errno-boundary",
"limits": "",
"method": "Read the complete mdextend error branch.",
"position": 2,
"runtime": [],
"sources": [
"src.path.2"
],
"statement": "The relation write path sends a negative FileWrite result through errcode_for_file_access(), while a short write explicitly uses ERRCODE_DISK_FULL; these are separate source branches."
}claims · errno-map
{
"claim_id": "errno-map",
"limits": "This records the PostgreSQL helper mapping; it does not claim that every operating-system write failure presents this SQLSTATE.",
"method": "Read the complete saved-errno switch, including its default branch.",
"position": 3,
"runtime": [],
"sources": [
"src.path.3"
],
"statement": "In the fixed errno helper, ENOSPC maps to ERRCODE_DISK_FULL; EFBIG and EDQUOT are not listed and therefore use the helper's default internal-error mapping."
}claims · history
{
"claim_id": "history",
"limits": "",
"method": "Use catalogue boundary.",
"position": 4,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "The locked catalogue records 53100 from 7.4; that boundary does not prove exact implementation introduction."
}messages · message.0
{
"limits": "",
"message_id": "message.0",
"path": "",
"position": 0,
"raw": {
"hint_template": "Check free disk space.",
"id": "message.0",
"primary_template": "could not write file \"%s\": wrote only %d of %d bytes at offset %lld",
"severity_source": "ERROR",
"sources": [
"src.path.0"
],
"sqlstate": "53100"
},
"severity": "ERROR",
"sources": [
"src.path.0"
],
"templates": [
{
"kind": "primary",
"literal": "could not write file \" \": wrote only of bytes at offset ld",
"position": 0,
"role": "",
"template": "could not write file \"%s\": wrote only %d of %d bytes at offset %lld"
},
{
"kind": "hint",
"literal": "Check free disk space.",
"position": 1,
"role": "",
"template": "Check free disk space."
}
]
}messages · message.1
{
"limits": "",
"message_id": "message.1",
"path": "",
"position": 1,
"raw": {
"hint_template": "Check free disk space.",
"id": "message.1",
"primary_template": "could not extend file \"%s\": wrote only %d of %d bytes at block %u",
"severity_source": "ERROR",
"sources": [
"src.path.1"
],
"sqlstate": "53100"
},
"severity": "ERROR",
"sources": [
"src.path.1"
],
"templates": [
{
"kind": "primary",
"literal": "could not extend file \" \": wrote only of bytes at block",
"position": 0,
"role": "",
"template": "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
},
{
"kind": "hint",
"literal": "Check free disk space.",
"position": 1,
"role": "",
"template": "Check free disk space."
}
]
}messages · message.2
{
"limits": "The source selects errcode_for_file_access() from errno; this template is not itself proof that the resulting SQLSTATE is 53100.",
"message_id": "message.2",
"path": "",
"position": 2,
"raw": {
"id": "message.2",
"limits": "The source selects errcode_for_file_access() from errno; this template is not itself proof that the resulting SQLSTATE is 53100.",
"primary_template": "could not extend file \"%s\": %m",
"severity_source": "ERROR",
"sources": [
"src.path.2",
"src.path.3"
]
},
"severity": "ERROR",
"sources": [
"src.path.2",
"src.path.3"
],
"templates": [
{
"kind": "primary",
"literal": "could not extend file \" \":",
"position": 0,
"role": "",
"template": "could not extend file \"%s\": %m"
}
]
}sources · src.errcodes.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/errcodes.txt",
"position": 0,
"sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
"source_id": "src.errcodes.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L408"
}sources · src.path.0
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/backup/basebackup_server.c",
"position": 1,
"sha256": "1447d7223926f903d27744605f9caec8a610d78a9f7a7864bb3afb6b3073ac19",
"source_id": "src.path.0",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/backup/basebackup_server.c#L177"
}sources · src.path.1
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/storage/smgr/md.c",
"position": 2,
"sha256": "c7e885c50b381337b8b8624bfc8effbd3abba7aa95a290083996354926ec9f69",
"source_id": "src.path.1",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/storage/smgr/md.c#L521"
}sources · src.path.2
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/storage/smgr/md.c",
"position": 3,
"sha256": "c7e885c50b381337b8b8624bfc8effbd3abba7aa95a290083996354926ec9f69",
"source_id": "src.path.2",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/storage/smgr/md.c#L512"
}sources · src.path.3
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/error/elog.c",
"position": 4,
"sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33",
"source_id": "src.path.3",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/error/elog.c#L868"
}Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · english-manuals:90861ec853e4d0193a88e8a3c0b2c0dc0aba40839c7f093ada82f1415f0a0232
Text language: en · english-manuals:90861ec853e4d0193a88e8a3c0b2c0dc0aba40839c7f093ada82f1415f0a0232