{"record":{"id":"cb4b4c4d133a02d0","repo":"prometheus/node_exporter","slug":"failed-to-parse-mountinfo-w","errorCode":null,"errorMessage":"failed to parse mountinfo: %w","messagePattern":"failed to parse mountinfo: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"collector/mountstats_linux.go","lineNumber":536,"sourceCode":"\t\t\t\"Number of NFS v4.1+ pNFS writes.\",\n\t\t\tlabels,\n\t\t\tnil,\n\t\t),\n\n\t\tproc:   proc,\n\t\tlogger: logger,\n\t}, nil\n}\n\nfunc (c *mountStatsCollector) Update(ch chan<- prometheus.Metric) error {\n\tmounts, err := c.proc.MountStats()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to parse mountstats: %w\", err)\n\t}\n\n\tmountsInfo, err := c.proc.MountInfo()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to parse mountinfo: %w\", err)\n\t}\n\n\t// store all seen nfsDeviceIdentifiers for deduplication\n\tdeviceList := make(map[nfsDeviceIdentifier]bool)\n\tmountpointList := make(map[nfsMountpointIdentifier]bool)\n\n\tfor idx, m := range mounts {\n\t\t// For the time being, only NFS statistics are available via this mechanism\n\t\tstats, ok := m.Stats.(*procfs.MountStatsNFS)\n\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tmountPoint := m.Mount\n\t\tvar mountAddress string\n\t\tif idx < len(mountsInfo) {\n\t\t\t// The mount entry order in the /proc/self/mountstats and /proc/self/mountinfo is the same.","sourceCodeStart":518,"sourceCodeEnd":554,"githubUrl":"https://github.com/prometheus/node_exporter/blob/17ddd77c59ba27e1508e9f7894b1e55b44d6aed3/collector/mountstats_linux.go#L518-L554","documentation":"Update failed while procfs parsed /proc/self/mountinfo for the mountstats collector. The mountinfo file was unreadable or did not match the expected format, so per-mountpoint NFS metric labeling cannot proceed and this scrape cycle returns an error.","triggerScenarios":"Thrown at collector/mountstats_linux.go:536 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check /proc/self/mountinfo readability and format inside the exporter's environment.","If /proc is a filtered or fuse-mounted view (some sandboxes), mount a real procfs.","Retry on the next scrape; errors during concurrent mount changes are typically transient."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"17ddd77c59ba27e1508e9f7894b1e55b44d6aed3","analyzedAt":"2026-09-07T17:54:06.211Z","contentChangedAt":"2026-09-07T17:54:06.211Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}