{"id":164600,"date":"2026-03-14T11:12:15","date_gmt":"2026-03-14T09:12:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal"},"modified":"2026-03-14T11:12:15","modified_gmt":"2026-03-14T09:12:15","slug":"sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal","title":{"rendered":"SQLite 3.51.3 avec correction d'un possible endommagement de la base de donn\u00e9es en mode WAL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"SQLite 3.51.3 avec correction d&#039;un possible endommagement de la base de donn\u00e9es en mode WAL\" src=\"\/wp-content\/uploads\/2026\/03\/3c442654f8b6d86974735255e8214cfe.jpg\" style=\"display:block;margin: 0 auto;\" \/>                              <noindex>      <noindex><\/p>\n<p>Le 13 mars, une mise \u00e0 jour corrective de la base de donn\u00e9es int\u00e9gr\u00e9e 3.51.3 a eu lieu. <a rel=\"nofollow\" href=\"https:\/\/sqlite.org\">SQLite<\/a>. Le code du projet est \u00e9crit en C et est distribu\u00e9 comme domaine public.<\/p>\n<p><\/noindex><\/noindex> <noindex><\/p>\n<p>En raison de probl\u00e8mes de r\u00e9trocompatibilit\u00e9 associ\u00e9s \u00e0 certaines nouvelles fonctionnalit\u00e9s, la version <a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/releaselog\/3_52_0.html\">3.52.0<\/a> (publi\u00e9e le 6 mars) a \u00e9t\u00e9 retir\u00e9e.<\/p>\n<p><\/noindex>  <\/p>\n<p>Liste des modifications de la version 3.51.3 :<\/p>\n<ul>\n<li>Le 3 mars, l'un des d\u00e9veloppeurs de SQLite (Dan) a d\u00e9couvert et corrig\u00e9 un bogue qui, dans des cas rares, pouvait entra\u00eener la corruption de la base de donn\u00e9es, nomm\u00e9 <a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/wal.html#walresetbug\">\u00abBug de r\u00e9initialisation WAL\u00bb<\/a>:\n<ul>\n<li>Ce bogue se produit uniquement dans les bases de donn\u00e9es fonctionnant en mode WAL, si plus d'une connexion est ouverte sur le m\u00eame fichier dans diff\u00e9rents threads ou processus, et si ces deux connexions essaient d'effectuer une \u00e9criture ou de cr\u00e9er un point de contr\u00f4le simultan\u00e9ment.<\/li>\n<li>Le bogue est li\u00e9 \u00e0 un conflit d'acc\u00e8s aux donn\u00e9es sous des contraintes de temps strictes. Dans des conditions normales d'exploitation, il se produit tr\u00e8s rarement. Les d\u00e9veloppeurs n'ont pas r\u00e9ussi \u00e0 reproduire ce bogue dans des conditions naturelles et ont d\u00fb ajouter une logique de test sp\u00e9ciale dans SQLite qui cr\u00e9e intentionnellement les conditions pour provoquer le bogue, afin de s'assurer que le probl\u00e8me est corrig\u00e9.<\/li>\n<li>Le bogue se produit lorsque :\n<ol>\n<li>Une connexion effectue une v\u00e9rification de point de contr\u00f4le. Cette premi\u00e8re v\u00e9rification doit \u00eatre termin\u00e9e. En d'autres termes, lors de la v\u00e9rification, il est n\u00e9cessaire de copier avec succ\u00e8s tout le contenu du fichier WAL dans la base de donn\u00e9es et de ramener le fichier WAL \u00e0 un \u00e9tat o\u00f9 il peut \u00eatre r\u00e9initialis\u00e9.<\/li>\n<li>Juste apr\u00e8s la fin de la premi\u00e8re v\u00e9rification de point de contr\u00f4le, un deuxi\u00e8me point de contr\u00f4le est lanc\u00e9.<\/li>\n<li>Alors que le deuxi\u00e8me point de contr\u00f4le du point 2 est lanc\u00e9, une autre connexion \u00e0 la base de donn\u00e9es valide une transaction qui r\u00e9initialise le fichier WAL et \u00e9crit un nouveau contenu au d\u00e9but du fichier WAL.<\/li>\n<li>En raison d'un conflit d'acc\u00e8s aux donn\u00e9es, le second point de contr\u00f4le du point 2 ne prend pas en compte que le fichier WAL a \u00e9t\u00e9 r\u00e9initialis\u00e9 \u00e0 la suite de la validation de la transaction au point 3. Le deuxi\u00e8me point de contr\u00f4le \u00e9tablit une valeur incorrecte pour l'un des champs de l'en-t\u00eate du WAL. Ce champ indique qu'une partie du fichier WAL a d\u00e9j\u00e0 \u00e9t\u00e9 valid\u00e9e dans un point de contr\u00f4le, alors qu'en r\u00e9alit\u00e9, ce n'est pas le cas.<\/li>\n<li>La validation de transactions suppl\u00e9mentaires entra\u00eene une augmentation du nombre de pages dans le fichier WAL, d\u00e9passant le nombre de pages existant au moment du premier point de contr\u00f4le du point 1.<\/li>\n<li>Plus tard, lorsque le troisi\u00e8me point de contr\u00f4le se produit, il ignore toute ou partie de la transaction enregistr\u00e9e \u00e0 l'\u00e9tape 3. Par cons\u00e9quent, les parties de la transaction de l'\u00e9tape 3 ne sont jamais enregistr\u00e9es dans le fichier de base de donn\u00e9es, ce qui entra\u00eene une corruption du fichier de base de donn\u00e9es.<\/li>\n<\/ol>\n<\/li>\n<li>Le bug est probablement pr\u00e9sent dans toutes les versions de SQLite, depuis 3.7.0 (21.07.2010) jusqu'\u00e0 3.51.2. Des correctifs ont \u00e9galement \u00e9t\u00e9 publi\u00e9s pour certaines versions ant\u00e9rieures : <a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/src\/info\/863c171b76cd36e0\">3.44.6<\/a> et <a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/src\/info\/c7facf7ac58d2cda\">3.50.7<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>D'autres corrections mineures.<\/li>\n<\/ul>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18241537\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>13-\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u043f\u0443\u0441\u043a 3.51.3 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0421\u0423\u0411\u0414 SQLite. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (public domain). \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0432\u0435\u0440\u0441\u0438\u044f 3.52.0 (\u0432\u044b\u0448\u0435\u0434\u0448\u0430\u044f 6-\u0433\u043e \u043c\u0430\u0440\u0442\u0430) \u0431\u044b\u043b\u0430 \u043e\u0442\u043e\u0437\u0432\u0430\u043d\u0430. \u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 3.51.3: 3-\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 SQLite (Dan) \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":164601,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-164600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47SQLite 3.51.3 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 WAL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-03-14T09:12:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-03-14T09:12:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47SQLite 3.51.3 avec correction d'un possible dommage \u00e0 la base de donn\u00e9es en mode WAL | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47SQLite 3.51.3 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 WAL | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/sqlite-3-51-3-s-ispravleniem-vozmozhnogo-povrezhdeniya-bazy-dannyh-v-rezhime-wal","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-03-14T09:12:15+00:00","article:modified_time":"2026-03-14T09:12:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/164600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=164600"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/164600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/164601"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=164600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=164600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=164600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}