The Daily WTF на русском
Подписаться
Скоростные поезда
Роберт Дж. столкнулся с транспортным сбоем, когда его вагон поезда неожиданно отцепился. Ему пришлось перебронировать поездку, что привело к тридцатиминутной задержке. Чтобы избежать дальнейших неудобств, Роберт воспользовался приложением железнодорожной компании, чтобы забронировать место в следующем поезде, получив подтверждение. В ожидании он выпил кофе, рассчитывая на плавный переход. При посадке в следующий поезд он столкнулся с другим пассажиром, который претендовал на то же забронированное место. Оба пассажира предъявили подтверждения из своих мобильных приложений, показывающие идентичное бронирование места с одинаковым временным штампом. Они также проверили подтверждения по электронной почте, которые еще больше подтвердили их противоречивые бронирования. К счастью, поезд не был полон, поэтому все без проблем нашли себе место. Этот инцидент выявил критическую проблему одновременного доступа в системе бронирования железнодорожной компании, где процесс проверки и бронирования не был атомарным. Автор предполагает, что ошибка сохраняется из-за отсутствия приоритета, либо из-за безразличия, либо из-за огромного количества других программных проблем. Система, вероятно, позволяет двум пользователям одновременно бронировать одно и то же место, потому что действия проверки и бронирования не выполняются как единая, неделимая операция.