{"record":{"id":"21f6fa003cbbf358","repo":"prometheus/node_exporter","slug":"couldn-t-get-ce-noinfo-count-for-controller-s-w","errorCode":null,"errorMessage":"couldn't get ce_noinfo_count for controller %s: %w","messagePattern":"couldn't get ce_noinfo_count for controller (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"collector/edac_linux.go","lineNumber":121,"sourceCode":"\t\treturn err\n\t}\n\tfor _, controller := range memControllers {\n\t\tcontrollerMatch := edacMemControllerRE.FindStringSubmatch(controller)\n\t\tif controllerMatch == nil {\n\t\t\treturn fmt.Errorf(\"controller string didn't match regexp: %s\", controller)\n\t\t}\n\t\tcontrollerNumber := controllerMatch[1]\n\n\t\tvalue, err := readUintFromFile(filepath.Join(controller, \"ce_count\"))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"couldn't get ce_count for controller %s: %w\", controllerNumber, err)\n\t\t}\n\t\tch <- prometheus.MustNewConstMetric(\n\t\t\tedacCeCount, prometheus.CounterValue, float64(value), controllerNumber)\n\n\t\tvalue, err = readUintFromFile(filepath.Join(controller, \"ce_noinfo_count\"))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"couldn't get ce_noinfo_count for controller %s: %w\", controllerNumber, err)\n\t\t}\n\t\tch <- prometheus.MustNewConstMetric(\n\t\t\tedacCsRowCECount, prometheus.CounterValue, float64(value), controllerNumber, \"unknown\")\n\n\t\tvalue, err = readUintFromFile(filepath.Join(controller, \"ue_count\"))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"couldn't get ue_count for controller %s: %w\", controllerNumber, err)\n\t\t}\n\t\tch <- prometheus.MustNewConstMetric(\n\t\t\tedacUeCount, prometheus.CounterValue, float64(value), controllerNumber)\n\n\t\tvalue, err = readUintFromFile(filepath.Join(controller, \"ue_noinfo_count\"))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"couldn't get ue_noinfo_count for controller %s: %w\", controllerNumber, err)\n\t\t}\n\t\tch <- prometheus.MustNewConstMetric(\n\t\t\tedacCsRowUECount, prometheus.CounterValue, float64(value), controllerNumber, \"unknown\")\n","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/prometheus/node_exporter/blob/17ddd77c59ba27e1508e9f7894b1e55b44d6aed3/collector/edac_linux.go#L103-L139","documentation":"Identical pattern to ce_count but for the ce_noinfo_count attribute: readUintFromFile failed while scraping a memory controller, so Update returns this wrapped error. It means correctable errors without DIMM info could not be read for that controller.","triggerScenarios":"readUintFromFile(<controller>/ce_noinfo_count) returns an error: file missing (driver doesn't expose it), permission denied, or unparseable content.","commonSituations":"Older or specialized EDAC drivers lacking ce_noinfo_count; permission-restricted sysfs in containers; partially populated EDAC directories after driver reload.","solutions":["Verify /sys/devices/system/edac/memctlr/mcN/ce_noinfo_count exists and is readable","Run with sufficient privileges (root or relaxed sysfs permissions)","Read the wrapped cause to identify ENOENT vs EACCES vs parse failure","If the driver never exposes this counter, disable the edac collector or patch it to tolerate the missing attribute"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if _, err := os.ReadFile(\"/sys/devices/system/edac/memctlr/mc0/ce_noinfo_count\"); err != nil {\n    // attribute missing or unreadable; expect scrape failure\n}","typeGuard":null,"tryCatchPattern":"if err := c.Update(ch); err != nil {\n    if strings.Contains(err.Error(), \"couldn't get ce_noinfo_count\") {\n        // driver may not expose this counter; disable edac collector or fix permissions\n    }\n}","preventionTips":["Enumerate expected EDAC attributes for your driver (ce_count, ce_noinfo_count, ue_count, ue_noinfo_count) at deploy time","Run unprivileged exporters only when sysfs EDAC files are group-readable","Re-check attribute presence after EDAC module reloads"],"tags":["linux","edac","sysfs","file-read"],"backgroundTag":"file-read-failed","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"}