Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

if object_id('block', 'u') is not null
	drop table block
go

create table block
(
	a int not null
	, b int not null
)
go

declare @a int, @b int

insert into block
select distinct
	a, b
from
	block (nolock)
union
select distinct
	@a
	, @b
go

select * from block

в таблице block - одна запись с нулями
Более того, попытка удалить записи из таблицы block
delete from block
роняет сервер, после перезагрузки база может свалиться в suspect
поэтому кто будет пробовать, delete не пользуйтесь
truncate table block позволяет избежать падения
Кто сталкивался, помогите как бороться
9 сен 05, 12:33    [1862667]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
УТОЧНЕНИЕ
delete from block
роняет сервер вот с такой ошибкой
ODBC: Msg 0, Level 19, State 1
SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionCheckForData (CheckforData()).
Server: Msg 11, Level 16, State 1, Line 0
Общая ошибка сети. Обратитесь к документации по сети.
Connection Broken
база сваливается в SUSPECT только когда в ней активно работают, и при сваливании сервера появляются плохие записи в log-файле
9 сен 05, 12:40    [1862703]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
ЕЩЕ УТОЧНЕНИЕ
при delete сервер падает только если в таблице block есть такой ключ

create table block
(
	a int not null
	, b int not null
	, primary key clustered (a, b)
)
9 сен 05, 12:41    [1862714]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37103
Потестить оборудование.
Прогнать DBCC CHECKDB.
Накатить сервиспаки, если это еще не было сделано.
9 сен 05, 12:44    [1862741]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Flint-San
Member

Откуда: Magnitogorsk
Сообщений: 146
После Ваших уточнений, я также уронил свой личный тестовый сервер :)
С таким вот сообщением.

[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionCheckForData (CheckforData()).
Server: Msg 11, Level 16, State 1, Line 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]General network error. Check your network documentation.

Connection Broken
9 сен 05, 12:47    [1862762]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Flint-San
Member

Откуда: Magnitogorsk
Сообщений: 146
Гавриленко Сергей Алексеевич
Потестить оборудование.
Прогнать DBCC CHECKDB.
Накатить сервиспаки, если это еще не было сделано.

А вы сначала проверьте, я тоже хотел посоветовать DBCC CHECKDB, но тут другой случай.
9 сен 05, 12:49    [1862787]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
Потестить оборудование.
ошибка вылазит как минимум на трех совершенно разных серверах
Прогнать DBCC CHECKDB.

Тестирую только что созданной базе
Накатить сервиспаки, если это еще не было сделано.

винда - автоапдейт, там все последнее
скл-сервер sp3, sp4 пока не ставил - да и нельзя, на одном из серверов 16 гиг

У меня предложение - может кому интересно попробуете на новой чистой базе на небоевом сервере мой скрипт?
if object_id('block', 'u') is not null
	drop table block
go

create table block
(
	a int not null
	, b int not null
	, primary key clustered (a, b)
)
go

declare @a int, @b int

insert into block
select distinct
	a, b
from
	block (nolock)
union
select distinct
	@a
	, @b
go

select * from block
go

-- delete from block
9 сен 05, 12:50    [1862793]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37103
Flint-San
Гавриленко Сергей Алексеевич
Потестить оборудование.
Прогнать DBCC CHECKDB.
Накатить сервиспаки, если это еще не было сделано.

А вы сначала проверьте, я тоже хотел посоветовать DBCC CHECKDB, но тут другой случай.

На 878 все нормально.
9 сен 05, 12:52    [1862815]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
На 878 все нормально

878 это SP4? или какие-то фиксы?
9 сен 05, 12:54    [1862828]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Flint-San
Member

Откуда: Magnitogorsk
Сообщений: 146
Но база в suspect у меня не выставляется.
Версия

Microsoft SQL Server 2000 - 8.00.760 (Intel X86)
Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation
Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 1)
9 сен 05, 12:54    [1862833]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
Flint-San
Но база в suspect у меня не выставляется.

База вылететь в suspect имеет шансы только боевая
По видимому, это получается, если падение скл-сервера сопровождается недозаписью лога транзакций.
Тестовые базы в suspect не сваливаются
Боевая у меня падала уже два раза
Первый раз не смогли разобраться, что вызвало
Сегодня упала снова (лечится по методике из фака - восстановление без LDF)
Вот такая вылезла причина
9 сен 05, 12:58    [1862863]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
PaulWist
Guest
Можно предположить, что block зарезервированное слово (хотя в Reserved Keywords его нет), во всяком случае у меня был прецедент когда БД назвал plan, в итоге с клиента не мог до неё достучаться.
9 сен 05, 13:03    [1862907]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
То есть по сути, багов два
1. Вставляется запись в таблицу, хотя не должна вставляться (поля NOT NULL, вставляем NULL'ы, а вставляются нули). При этом мелкие изменения скрипта (удаление первого запроса в юнионе, перестановка селектов местами, использование 1 переменной в оба поля вместо двух) приводит к совершенно логичной работе - выдается "Cannot insert the value NULL into column..."
2. При удалении этой кривой записи из таблицы падает сервер. Причем падает по-серьезному, иногда не дозаписывая логи.
9 сен 05, 13:04    [1862919]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
PaulWist
Можно предположить, что block зарезервированное слово

Замена block на любое другое ничего не меняет. Попробуйте у себя.
9 сен 05, 13:05    [1862928]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Glory
Member

Откуда:
Сообщений: 104760
Здесь все нормально

Microsoft SQL Server 2000 - 8.00.859 (Intel X86) Sep 18 2003 12:53:45 Copyright (c) 1988-2003 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

и здесь

Microsoft SQL Server 2000 - 8.00.878 (Intel X86) Nov 11 2003 13:37:42 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
9 сен 05, 13:11    [1862978]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Точно, на SP3 - бага, в SP4 - пофиксено.
9 сен 05, 13:14    [1863001]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
8.00.760 - это я как понимаю, чистый SP3
а это что за релизы?

Glory
8.00.859
8.00.878


SP4 или SP3 + фиксы?
если второе, то какие именно?
9 сен 05, 13:14    [1863002]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Glory
Member

Откуда:
Сообщений: 104760
1. Вставляется запись в таблицу, хотя не должна вставляться (поля NOT NULL, вставляем NULL'ы, а вставляются нули).

if object_id('block', 'u') is not null
	drop table block
go

create table block
(
	a int not null
	, b int not null
	, primary key clustered (a, b)
)
go

declare @a int, @b int

insert into block
select distinct
	@a, @b
union all
select  distinct
	a
	, b
from block (nolock)
go

select * from block
go
9 сен 05, 13:17    [1863018]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shreder
8.00.760 - это я как понимаю, чистый SP3
а это что за релизы?

Glory
8.00.859
8.00.878


SP4 или SP3 + фиксы?
если второе, то какие именно?

SP3+ Fix818+Fix819+Fix859+Fix878
9 сен 05, 13:18    [1863030]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
2 Glory
В твоем варианте (поменяны местами select-ы в юнионе) все работает по-честному
Server: Msg 515, Level 16, State 2, Line 4
Cannot insert the value NULL into column 'b', table 'aaa6.dbo.block'; column does not allow nulls. INSERT fails.
The statement has been terminated.

До такого workarround-а я додумался. Но... Баг-то есть, может быть он проявляется не только с переменными, но и если два селекта из таблиц.
Это я щас попробую потестировать.
Нормальный выход какой - SP4 ставить? или фикс есть какой?
9 сен 05, 13:21    [1863050]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
Glory
SP3+ Fix818+Fix819+Fix859+Fix878

Thank
Фиксы свободные для скачивания?
Сейчас попробую найти и поставить
9 сен 05, 13:25    [1863076]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shreder
Glory
SP3+ Fix818+Fix819+Fix859+Fix878

Thank
Фиксы свободные для скачивания?

Да
9 сен 05, 13:28    [1863096]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Crimean
Member

Откуда:
Сообщений: 13148
2 Glory

А зачем фиксы через "+" перечислены? Достаточно последнего, самого старшего, я так понимаю... Или нет?
9 сен 05, 14:14    [1863426]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Shreder
Member

Откуда: Нижний Новгород
Сообщений: 278
Помогите, люди добрые
Никак не могу найти эти фиксы
Ползаю по microsoft.com
Все пути приводят к четвертому SP
На сами фиксы в чистом виде никак выйти не могу
Может ссылку кто убогому кинет? :-)))
9 сен 05, 14:22    [1863502]     Ответить | Цитировать Сообщить модератору
 Re: Супер-БАГ  [new]
Flint-San
Member

Откуда: Magnitogorsk
Сообщений: 146
Shreder
Помогите, люди добрые
Никак не могу найти эти фиксы
Ползаю по microsoft.com
Все пути приводят к четвертому SP
На сами фиксы в чистом виде никак выйти не могу
Может ссылку кто убогому кинет? :-)))

819
http://www.microsoft.com/downloads/details.aspx?FamilyID=72336508-057a-4e86-8f2e-cb1bd3a6a44b&displaylang=en
9 сен 05, 14:35    [1863578]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить