Consume una unidad de estado sólido al año: el bug de registro de Codex es criticado como 'software defectuoso'

marsbit发布于2026-07-02更新于2026-07-02

文章摘要

El artículo reporta un grave problema en la herramienta de programación Codex de OpenAI: su sistema de registro de logs (bitácoras) escribe aproximadamente 640 TB de datos al año en los discos SSD de los usuarios, agotando prematuramente su vida útil. Esto ocurre porque, por defecto, registra un nivel excesivo de información de depuración (TRACE) en una base de datos SQLite local, realizando constantes operaciones de inserción y borrado que desgastan el disco sin aumentar el tamaño final del archivo. Aunque el problema se conoce desde abril y hay múltiples informes similares, OpenAI solo lo corrigió parcialmente tras hacerse público, reduciendo en un 85% las escrituras. La comunidad critica esta práctica como ejemplo de "software deficiente" que consume recursos del usuario sin consentimiento, y señala que la competencia, como Claude Code, presenta fallos similares. El caso refleja una tendencia preocupante en el desarrollo de software con IA, donde la ineficiencia se enmascara con hardware más potente.

¿'Consumir' una unidad de estado sólido de 1TB en un año?

Codex, la herramienta de programación insignia de OpenAI, está desgastando tu unidad de estado sólido con una escritura de 640 TB al año.

Hace un tiempo, un desarrollador abrió un issue en GitHub. Este issue, ahora marcado como 'Closed' y con el número #28224, lleva el título:

Los registros de feedback de SQLite de Codex pueden escribir 640TB al año, agotando rápidamente la vida útil de las SSD.

Según las mediciones del informante, su SSD principal perdió 37 TB de escritura tras 21 días de funcionamiento continuo. Extrapolando, eso supone unos 640 TB al año, suficientes para acabar con una unidad de consumo con una resistencia total a escritura (TBW) de 600 TB.

Como evidencia, adjuntó dos tablas.

En la evidencia 1, esta base de datos de registros siempre ocupa solo 1.2 GB, aparentemente sin cambios; pero su ID de fila autoincremental ya ha superado los 5.5 mil millones, mientras que las filas realmente retenidas son apenas poco más de 500,000, una diferencia de diez mil veces.

La clave está en que el desgaste del disco se mide por la cantidad total escrita, independientemente de lo que quede ahora: esas 5.5 mil millones de filas se escribieron todas en el disco, y borrarlas no devuelve el desgaste ya incurrido. Así que al revisar el archivo solo ves esas 500,000 filas, pero el disco ya ha soportado la escritura de 5.5 mil millones.

La evidencia 2 revela la distribución de estas 5.5 mil millones de filas: más del 90% es ruido de depuración que ni los propios desarrolladores revisarían. Solo el hecho de copiar cada paquete completo de datos WebSocket supone la mitad.

El culpable es una configuración predeterminada de Level::TRACE, que trata la vida útil de escritura de tu disco como papel de borrador gratuito.

Un comentario muy votado en Hacker News definió la situación:

Este es uno de los ejemplos más notorios de 'software defectuoso' (slopware).

Este usuario también añadió con frustración:

Es realmente trágico. El mundo necesita competencia para Anthropic.

Lo más embarazoso es que el problema no era desconocido.

Desde abril de este año hubo reportes esporádicos, que se arrastraron durante más de dos meses, hasta que los usuarios hicieron sus propios cálculos, escribieron informes y lo llevaron a los titulares de Hacker News para que fuera tomado en serio. Incluso así, esta ronda solo eliminó aproximadamente el 85% de la escritura de registros.

Algunos intentaron solucionarlo por su cuenta, pero descubrieron que no podían: las versiones de escritorio de estas herramientas son de código cerrado.

Otro comentario ingenioso: ¿cómo es que el proceso de revisión no detectó un error tan obvio? Ah, cierto... @codex, revisa esto.

640TB, ¿cómo se llega a esa cifra?

¿Qué representa 640TB?

Las SSD de consumo convencionales tienen una vida útil de escritura (TBW) típica de 150 a 600 TB, suficiente para décadas de uso normal.

Y la función de registro de Codex, que simplemente 'anota lo que hace', puede alcanzar esa cifra en un año.

Todo comenzó cuando este usuario revisó su disco. Su máquina, encendida continuamente durante 21 días, había escrito 37 TB en su SSD principal.

A ese ritmo, unos 640 TB al año.

Pero lo más absurdo es el método de escritura.

Codex mantiene localmente una base de datos SQLite, logs_2.sqlite, específicamente para registros de feedback. Este usuario la monitoreó durante 15 segundos: se insertaron 36,211 filas, pero el número total de filas retenidas se mantuvo en 681,774 desde el principio hasta el final, sin aumentar.

Por cada fila insertada, otra era eliminada. El conteo de filas constante, pero el disco era reescrito decenas de miles de veces.

A este mecanismo se le conoce como 'insertar y podar' (insert-and-prune).

Y lo más ridículo es lo que registra: una serie de eventos inotify del sistema de archivos.

ld.so.cache fue registrado 128,764 veces, locale.alias 37,982 veces, passwd 23,843 veces.

El mismo archivo, por el mismo programa, registrado cientos de miles de veces.

El ID autoincremental en los registros supera los 5.5 mil millones, mientras que las filas realmente conservadas son solo unas 500,000.

Una diferencia de diez mil veces.

Esto no es un bug, parece que una herramienta de programación con IA está recitando un mantra a su propio disco duro.

El archivo pesa 1GB, pero la escritura es de 640TB

¿Qué tamaño tiene logs_2.sqlite, escribiendo y borrando constantemente? Aproximadamente 1 GB.

Esto lleva al punto más contraintuitivo de todo el asunto: la vida útil de una SSD se mide por la 'cantidad de escritura', no por el 'tamaño del archivo'. Un archivo de 1 GB reescrito 640 veces equivale a 640 TB de escritura para el disco.

SQLite utiliza el mecanismo WAL (Write-Ahead Logging): cada cambio se escribe primero en el archivo -wal, y luego se consolida (checkpoint) en la base principal. Codex realiza decenas de miles de inserciones y eliminaciones cada 15 segundos, cada una pasando por WAL, actualización de índices y checkpoint. La misma área de almacenamiento, sobrescrita una y otra vez.

Una analogía: un cuaderno de 1 GB donde cada día borras y reescribes 1,750 veces, durante un año. El cuaderno es el mismo, pero el papel está gastado.

Esta es también la razón por la que este bug pudo permanecer oculto tanto tiempo: no ocupa espacio, solo quema vida útil.

Revisar el espacio disponible en disco no muestra anomalías, el tamaño del archivo se mantiene estable. Solo al consultar los contadores de salud SMART del disco se puede ver la acumulación silenciosa de escritura.

La causa raíz: una línea RUST_LOG ignorada

¿Por qué se registra tanto?

La respuesta está en una línea de configuración del código fuente de Codex: el 'sink' (receptor) del registro de feedback SQLite se inicializa con Targets::new().with_default(Level::TRACE).

En resumen, el registro está configurado por defecto en el nivel TRACE, el más alto, verboso y que registra todo.

El framework de registro de Codex es 'tracing' del ecosistema Rust, cuya práctica estándar es leer la variable de entorno RUST_LOG. Los usuarios lo intentaron, ajustando RUST_LOG a info, warn, incluso desactivándolo.

Inútil.

with_default(Level::TRACE) fija rígidamente el nivel predeterminado global en TRACE. RUST_LOG no tiene efecto en esta ruta. Crees que has desactivado el registro, pero sigue escribiendo.

Lo más engañoso de este tipo de bug no es que 'olvidaras configurarlo', sino que 'lo configuraste, y lo ignoró'.

Otro dato revelador es una proporción.

Separando los registros retenidos por categoría, TRACE representa el 70.7%, unos 732.5 MB. Sumando los dos flujos de telemetría espejada codex_otel (log_only y trace_safe), se añade otro 25.3%.

El 70% de la escritura es ruido TRACE. Sumando la telemetría espejada, el 96% son detalles irrelevantes que nadie revisaría.

Solo el 4% es contenido realmente significativo.

No es el primero, al menos es el noveno

El informante revisó el repositorio de Codex y descubrió que hay al menos 9 issues sobre 'crecimiento ilimitado de registros'.

#17320, escritura frenética de WAL durante respuestas en flujo, misma causa raíz que esta vez: TRACE ignorando RUST_LOG.

#24275, logs_2.sqlite en la versión de escritorio crece descontroladamente.

#22444, WAL crece infinitamente y no libera espacio.

#26374, escribe 0.75 GB al día, sin rotación.

#27911, una base de datos goals_1.sqlite de 4 KB, escrita a 11 MB/s.

#20563, el proceso escribe frenéticamente en disco incluso inactivo.

#27020, actividad de disco al 100% en Windows.

El origen más temprano se remonta a #12969, el PR que introdujo el 'sink' del registro de feedback SQLite configurado en nivel TRACE.

Una base de datos de 4 KB escrita a 11 MB por segundo merecería un artículo por sí sola. Y es un síntoma del mismo producto, del mismo sistema de telemetría que el de los 640 TB.

Esto indica que el sistema de registro y telemetría de Codex, desde el principio, carecía del concepto de 'presupuesto de recursos'.

Toda la industria compite por presupuesto de tokens, longitud de contexto, capacidad del modelo.

Pero casi nadie pregunta: ¿quién controla el presupuesto de disco, memoria, CPU de un Agente que se ejecuta 7x24 en la máquina del usuario?

Se corrigió, pero de manera muy 'OpenAI'

Reportado en GitHub el 14 de junio. El 23 de junio, el informante actualizó: tres PRs fusionados. Según sus propias pruebas en Codex, reducen aproximadamente el 85% del registro, por lo que cerró el issue.

Primero, ese 85%: no es el 100%, y aún no está completamente implementado.

De las tres correcciones, #29432 y #29457 se lanzaron con la versión 0.142.0, eliminando los registros WebSocket línea por línea y objetivos de ruido; la tercera, #29599, desactiva otro tipo de registros redundantes introducidos por puente, y llegará con la versión 0.143.0.

Incluso con las tres implementadas, el 15% restante aún supondría escribir unos 96 TB al año, pasando de 'agotar el disco en un año' a 'agotarlo en seis años'.

Algunos defienden la postura: los registros TRACE se almacenan por diseño para depuración, no es un bug, y son útiles para que OpenAI investigue casos límite.

Pero el problema reside precisamente ahí: usar la vida útil de las SSD de usuarios que pagan, como almacenamiento gratuito para la depuración del fabricante. ¿Los usuarios dieron su consentimiento para eso?

El campo de batalla de la programación: lo que se agota no es solo la SSD

Curiosamente, no solo Codex recibió críticas.

En los comentarios rápidamente añadieron: Claude Code también escribe registros de depuración intensivamente en local, obligando a algunos a enlazar el directorio de registros a un disco en RAM (tmpfs) para salvar sus SSD.

Dos herramientas líderes, la misma clase de problema.

Los comentarios de la comunidad pronto pasaron de un bug específico a cuestionar la calidad general de las herramientas de programación con IA.

Algunos se quejan de que estos agentes mantienen la GPU al máximo, consumen 70 GB de memoria, otros acuñaron un nombre para esta generación de software: software defectuoso (slopware).

La sugerencia original del desarrollador era simple: establecer un límite para la aplicación, que no supere los 3 GB. Solo esa línea, Codex tardó 9 Issues y varios meses en trazarla.

La pregunta es: ¿por qué una empresa que siempre habla de 'AGI' tropieza con un problema que un ingeniero en prácticas podría detectar?

¿Por qué pudo permanecer oculto tanto tiempo? Un comentario dio en el clavo.

Hace una década, con el registro en TRACE, el programa se colgaría al instante y se corregiría el mismo día. Hoy, las CPUs son rápidas, la memoria es grande, los discos son potentes. Este defecto es absorbido silenciosamente por el rendimiento del hardware. El programa funciona, la interfaz responde, el usuario no nota nada, hasta que un día la SSD falla prematuramente.

En los últimos años, el software se llena de código generado por IA, las funciones se acumulan, las capas de abstracción se apilan, el consumo de recursos se dispara, sostenido solo por hardware más rápido cada año.

Así surge un ciclo absurdo: el software se escribe peor, el hardware se fabrica más potente. Los usuarios, con la ilusión de que 'no va más lento', pagan por máquinas nuevas, que apenas sostienen software peor.

Un pequeño bug no derribará a OpenAI. Pero la competencia entre Codex y Claude Code ya se extiende desde la capacidad del modelo hasta la entrada del flujo de trabajo del desarrollador.

En este frente, cambiar rápidamente y responder a las necesidades de los desarrolladores no es un punto a favor, es el precio de entrada.

Referencias:

https://github.com/openai/codex/issues/28224

https://news.ycombinator.com/item?id=48626930

Este artículo proviene del WeChat público '新智元' (Nueva Era de la Inteligencia), autor: ASI启示录

热门币种推荐

相关问答

Q¿Cuál es el principal problema reportado con Codex de OpenAI?

AEl principal problema es que la función de registro de comentarios de Codex escribe aproximadamente 640 TB de datos al año en el disco duro del usuario, utilizando un mecanismo 'insertar y podar' (insert-and-prune) en una base de datos SQLite. Esto agota rápidamente la vida útil de un SSD de consumo, que suele tener un límite de escritura total (TBW) de entre 150 y 600 TB.

Q¿Por qué el archivo de registro `logs_2.sqlite` no crece mucho en tamaño pero aún así daña el SSD?

AEl archivo `logs_2.sqlite` se mantiene alrededor de 1 GB porque usa un mecanismo de 'insertar y podar', donde constantemente se añaden y eliminan filas. Sin embargo, cada operación de escritura (inserción o eliminación) cuenta para el desgaste del SSD, independientemente del tamaño final del archivo. Es como reescribir constantemente las mismas páginas de un cuaderno, desgastándolas aunque el número de páginas no aumente.

Q¿Cuál fue la causa raíz de la generación excesiva de logs en Codex?

ALa causa raíz fue una configuración de código que establecía el nivel de registro por defecto en TRACE (`with_default(Level::TRACE)`), el nivel más detallado. Esta configuración anulaba las variables de entorno como `RUST_LOG`, haciendo que el software registrara grandes cantidades de datos de depuración irrelevantes (como eventos del sistema de archivos) las 24 horas del día, incluso si el usuario intentaba desactivar los logs.

Q¿Cómo respondió OpenAI al problema y cuál fue el resultado?

AOpenAI fusionó tres solicitudes de cambios (pull requests) en el código para abordar el problema. Estas correcciones redujeron aproximadamente un 85% la escritura de logs. Sin embargo, incluso después de las correcciones, se estima que el software aún escribirá unos 96 TB al año, lo que sigue siendo un desgaste significativo para el hardware del usuario.

QSegún el artículo, ¿qué término se utiliza para describir software de baja calidad como el que exhibe este bug?

AEl artículo menciona que en los comentarios de Hacker News, este tipo de software se describe como 'slopware' (una combinación de 'slop', que significa bazofia, y 'software'), traducido en el texto como 'software de baja calidad' o 'software chapucero'. Se critica que, a pesar de los avances en IA, se descuiden aspectos básicos de la ingeniería de software y la gestión de recursos.

你可能也喜欢

Anthropic造了套AI越狱「刑法」:你的请求,四种死法

近日,Anthropic公布了其AI安全系统Fable的详细拦截规则,并将用户请求分为四类进行管理:明确禁止的恶意行为(如勒索软件)、高风险双用途行为(如渗透测试)、低风险双用途行为(如漏洞扫描)以及理论上无害的行为(如调试代码)。然而,该系统因“宁可错杀,不可放过”的原则,导致大量正常请求被误拦截,引发了用户不满。 为更系统化地评估安全风险,Anthropic联合Glasswing联盟推出了“网络越狱严重性框架”(CJS)。该框架从能力增益、能力广度、武器化难度和可发现性四个维度对AI越狱行为进行0-10分的量化评分,并划分严重等级。CJS旨在为模型下架等决策提供“客观”依据,但其评分标准由Anthropic及其盟友主导制定,引发了对规则制定权垄断的担忧。 文章指出,此前Fable 5模型因美国出口管制政策被全球断服,标志着监管首次直接作用于模型API。如今,重新上线的模型已配备更严格的过滤系统。而更强大的Mythos模型仅对特定合作机构开放,形成了“技术分层”的管控格局。在此背景下,CJS框架也被视为递给监管者的“行刑尺”。 对于普通用户,文章建议在提示词中避免敏感词汇、注意模型降级信号,并耐心等待系统优化。最终,AI能力的边界已不纯粹是技术问题,更受到了商业策略与地缘政治规则的双重塑造。

marsbit30分钟前

Anthropic造了套AI越狱「刑法」:你的请求,四种死法

marsbit30分钟前

年入1亿美元,两个90后伯克利室友,搞出最赚钱的AI生意

一家不造AI的公司,年收入却高达1亿美元。这家公司名为Arena,前身是加州大学伯克利分校团队在2023年发起的开源研究项目Chatbot Arena。它核心的产品是一个通过用户真实盲测生成的大模型排行榜:用户输入提示词,系统随机分配两个匿名模型作答,由用户投票选择更优者。凭借海量真实数据,该榜单已成为业界公认的权威评测平台,吸引了OpenAI、谷歌、Anthropic等顶级厂商在此“打擂台”。 其商业模式在于“卖水”:为模型厂商和企业提供付费的深度评测服务,利用其庞大的用户社区对模型进行真实世界性能分析。这种服务切中了模型厂商激烈竞争、亟需优化调优的痛点。 公司由两位伯克利室友创立。CEO Anastasios Angelopoulos师从多位学术大牛,专注于对黑箱模型进行数学严谨的评估;CTO Wei-Lin Chiang是知名开源聊天机器人Vicuna的创造者。项目发展迅速,在商业化仅8个月后年化营收便达到1亿美元,并已完成高额融资,估值达17亿美元。 目前,Arena已将评测范围从简单的对话能力,扩展到智能体模式下的复杂长任务(如写代码、研究分析),用任务完成率、幻觉率等更客观的指标进行评估。在AI向智能体演进的时代,中立、可靠的评测变得愈发关键和昂贵,这正是Arena巨大价值的根基。

marsbit34分钟前

年入1亿美元,两个90后伯克利室友,搞出最赚钱的AI生意

marsbit34分钟前

狂揽2.4万星标:一行命令,AI会自己找技能了

过去,AI开发者交换的是提示词模板;如今,风向转变为互相推荐可安装的“技能”(skill)。Vercel推出的Skills项目,正致力于成为AI智能体的“npm”包管理器。通过一行命令(如 `npx skills add <package>`),开发者可以为Claude Code、Cursor等多种AI工具快速安装能力包,涵盖代码规范、设计准则等,实现能力的即装即用和跨工具共享。 该项目上线五个月便在GitHub获得2.4万星标,并配套上线了技能目录网站skills.sh,设有安装量排行榜。其中,“find-skills”技能尤为突出,安装量超230万次,它能让AI根据用户需求自动搜索、筛选并安装合适的技能,相当于为AI提供了“能力搜索引擎”。 这标志着AI编程正从“提示词工程”迈向“能力工程”,将零散经验封装为可复用、可版本管理的模块。Vercel此举意在复制其通过Next.js卡位前端生态的成功经验,在AI智能体工具层建立新入口。 然而,热潮背后存在安全隐患。安全审计发现,技能包中约有13.4%存在严重安全缺陷,可能携带恶意脚本、进行提示词注入或窃取密钥。与传统的npm包不同,技能包融合了提示词、代码和执行权限,风险直接触及本地系统和敏感数据。因此,用户需要像对待代码一样谨慎选择技能,仔细审查来源和所需权限。 Vercel创始人Guillermo Rauch的长期目标,正是将复杂工程简化为“一行命令”的极致体验。从Now、Next.js到如今的Skills,这一理念正被应用于AI领域,在带来便利的同时,也要求开发者带着判断力进场,共同迎接AI能力“npm化”的机遇与挑战。

marsbit35分钟前

狂揽2.4万星标:一行命令,AI会自己找技能了

marsbit35分钟前

Claude工程师终于交出Fable 5焚诀,教你打破和模型之间的信息差

Claude Fable 5模型发布后经历波折,最终回归生产力工具。Claude工程师Thariq Shihipar指出,用户与模型间存在“信息差”(即提示词、技能与真实任务需求间的差距),这常导致输出不如预期。他将此差距称为“未知项”,并强调与Fable协作的核心是迭代地发现和澄清这些未知项。 Thariq将未知项分为四类:已知的已知(明确提出的需求)、已知的未知(自知未明的部分)、未知的已知(未言明的隐含知识)和未知的未知(完全未意识到的部分)。提升AI编程效率的关键在于减少未知项,并主动规划。 他提供了一套贯穿工作流的方法: 1. **实现前**:通过“盲点扫描”让AI帮你发现认知盲区;进行“头脑风暴与原型”快速验证想法;通过“反问”让AI提问以澄清歧义;提供“参考资料”(如代码、设计)辅助沟通;制定“实现计划”并优先审阅易变部分。 2. **实现中**:要求AI维护“实现笔记”,记录临时决策与偏差原因。 3. **实现后**:创建“推介与解释文档”便于团队评审和获批;通过“测验”确保自己理解AI所做的全部变更。 文章以Fable发布视频的制作为例,展示了如何串联这些方法,在陌生领域(视频剪辑与调色)逐步发现未知项并完成任务。总结认为,模型能力越强,用户越需通过系统方法定义未知项,从而让“地图”(计划)匹配“疆域”(现实),高效达成目标。

marsbit40分钟前

Claude工程师终于交出Fable 5焚诀,教你打破和模型之间的信息差

marsbit40分钟前

交易

现货

热门文章

如何购买T

欢迎来到HTX.com!我们已经让购买Threshold Network Token(T)变得简单而便捷。跟随我们的逐步指南,放心开始您的加密货币之旅。第一步:创建您的HTX账户使用您的电子邮件、手机号码注册一个免费账户在HTX上。体验无忧的注册过程并解锁所有平台功能。立即注册第二步:前往买币页面,选择您的支付方式信用卡/借记卡购买:使用您的Visa或Mastercard即时购买Threshold Network Token(T)。余额购买:使用您HTX账户余额中的资金进行无缝交易。第三方购买:探索诸如Google Pay或Apple Pay等流行支付方法以增加便利性。C2C购买:在HTX平台上直接与其他用户交易。HTX场外交易台(OTC)购买:为大量交易者提供个性化服务和竞争性汇率。第三步:存储您的Threshold Network Token(T)购买完您的Threshold Network Token(T)后,将其存储在您的HTX账户钱包中。您也可以通过区块链转账将其发送到其他地方或者用于交易其他加密货币。第四步:交易Threshold Network Token(T)在HTX的现货市场轻松交易Threshold Network Token(T)。访问您的账户,选择您的交易对,执行您的交易,并实时监控。HTX为初学者和经验丰富的交易者提供了友好的用户体验。

1.6k人学过发布于 2024.07.04更新于 2026.06.02

如何购买T

相关讨论

欢迎来到HTX社区。在这里,您可以了解最新的平台发展动态并获得专业的市场意见。以下是用户对T(T)币价的意见。

活动图片