Ошибка при сохранении нод

Аватар пользователя Sun-fire Sun-fire 15 августа 2011 в 18:40

Суть трабла. При сохранении некоторых нод после внесения изменений в тайтл ноды появляется ошибка:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '7n7p7A5ELn1_RosSW_K05qvV-u0MHGJTVW6dD_YcgGQ' for key 'hash': INSERT INTO {redirect} (hash, type, uid, source, source_options, redirect, redirect_options, language, status_code, count, access) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10); Array ( [:db_insert_placeholder_0] => 7n7p7A5ELn1_RosSW_K05qvV-u0MHGJTVW6dD_YcgGQ [:db_insert_placeholder_1] => redirect [:db_insert_placeholder_2] => 1 [:db_insert_placeholder_3] => catalog/bag/sumka-dlya-noutbuka-164-dicota-n22538p-motion-comfort [:db_insert_placeholder_4] => a:0:{} [:db_insert_placeholder_5] => node/9234 [:db_insert_placeholder_6] => a:0:{} [:db_insert_placeholder_7] => uk [:db_insert_placeholder_8] => 0 [:db_insert_placeholder_9] => 0 [:db_insert_placeholder_10] => 0 ) in drupal_write_record() (line 6861 of /includes/common.inc).

Судя по листингу ексепшна, не правильно записывается алиас, поскольку ошибка происходит при попытке записи в таблицу уже существующего хэша, который в траблице должен быть уникальным полем.

На сайте установлены:

Global Redirect
Pathauto
Redirect

Трабла появляется только для некоторых нод. Для большинства все работает нормально. В чем может быть проблемма?

Комментарии

Аватар пользователя Sun-fire Sun-fire 16 августа 2011 в 15:01

Суть проблемы установил.
Сбой происходит в модуле redirect. Если в списке допустимых редиректов уже есть редирект, который мы пытаемся туда записать, то не срабатывает валидация редиректа и он допускается к сохранению.

Таким образом, не срабатывает функция валидации redirect_validate(). Проблема временно решена добавлением кода валидации в функцию redirect_save()

У кого-то еще возникала такая же проблема?