LINUX.ORG.RU

обнаружены причины проблем MySQL на linux-системах


0

0

Разработчики обнаружили причину двух проблем, возникающих на многих Linux-системах.

Первая проблема - это неожиданное повреждение таблиц на ядре 2.2.14
Вызвана ошибкой в подсистеме ввода/вывода ядра 2.2.14 (bug in the I/O implementation). Рекомендация - обновить ядро до версии 2.2.19 или 2.2.20

Вторая проблема - неожиданные "падения" сервера MySQL и повреждения таблиц на системах, использующих компилятор gcc 2.96 (Red Hat 7.x, Mandrake 8.x, ASP 7.x и др.) Рекомендации - установка бинарников с www.mysql.com или пересборка исходников MySQL с использованием gcc версий 2.95 или 2.91

>>> подробности



Проверено:

В догонку

Любителям поругать RedHat следует заметить, что проблемы со сборкой MySQL имеет не только gcc 2.96, но и gcc 3.0.x.

maxcom ★★★★★
()

Честно говорю, на мой взгляд Monty всегда кичился использовать gcc и имел привычку списывать проблемы работы mysql на RH ;)

BoBuk
()

Я не уверен за правильно процентное выражение, но ИМХО на не менее половины НОВЫХ серверов (имеется ввиду вновьнастраиваемых) ставятся вышеперечисленные дистрибутивы и заявление о том, что мол, не компильте на RH7.x и т.п. - есть некий абсурд ! Это что, мне теперь еще и gcc-2.95 на сервер тащить ? А установка бинарников с www.mysql.com, ИМХО, опять же, еще более не лучшее решение ... Лично я всегда тащу src.rpm и пересобираю его с добавлением в spec --with-charset=win1251

Anton_Khalikov
()

девелоперы MySQL не первые, кто на gcc 2.96 ругается...

anton
()
Ответ на: комментарий от Anton_Khalikov

Ну и напрасно

" А установка бинарников с www.mysql.com, ИМХО, опять же, еще более не лучшее решение ... "

Ну и напрасно. На mysql.com бинарники статически скомпонованы с
той glibc, на которй проводилось тестирование и отладка. И в которой
разработчики уверены.

Что касается gcc-2.96 то его как бы и нету. По крайней мере на
сайте gcc. Это типа самодеятельность некоторых разработчиков дистрибутивов.  поэтому если говорить о _сервере_, то
gcc 2.95-3 очень бы не помешал. 

walrus
()

Ну это как-бы не новость. На сайте mysql сообщение об этом уже несколько месяцев лежит

walrus
()

Не знаю как там насчет сервера, но для ядер gcc-2.96-99 - 2.96.101 очень даже подходят. И если не подходят для mysql. Что же, стяну бинарники но задумаюсь а нужен ли мне mysql или все же что то более другое. Достают меня козлы которые пытаются наехать на самодеятельность. На то он и linux что бы самодеятельностью заниматься. Тем более, что получается лучше.

bzImage
()

Да ладно, чего вы оправдываетесь за чужие ошибки и недочёты.

Определитесь, что вам надо. И выбирайте дистрибутив в соответствии с этим.

А про самодеятельность.... попробуйте в RedHat поставить новое ядро и после

make config

выполнить

make install

А теперь скажите мне, зачем это надо? Чтобы support предложить бесплатный, где кто-то будет объяснять почему этого делать не стоит....

тональ

anonymous
()
Ответ на: комментарий от bzImage

"Козлы.. Наехать.. Достали.. "

Все понятно, вопросов больше нет.

walrus
()

Много лет пишу make menuconfig ...

make install

И вы знаете, все работает! Даже на последних редхатах. Может быть некую встряску такую сделать, чтобы туева хуча криворуких анонимусов отвалила от использования линукса?

Хотя не поможет. Они все равно буду сюда приходить чтобы обосрать систему, в которой так и не смогли разобраться по причине собственного слабоумия.

anonymous
()

это на свежеустановленном RedHat?

под make config имелось в виду

#!/bin/sh echo 'Выберите один из вариантов:\n' for i in old menu x; do echo 'make '$i'config' done #вот

или мозгой кривых анонимусов...

anonymous
()

Чето я тоже уже остыл с применением gcc выше 2.95-3
ситуация, когда код компилится, но в тихую не работает мне крайне неприятна. а такое то тут то там возникает постоянно.
так что если авторы просят собирать mysql gcc-2.95 - стоит именно так и делать. и пользоваться 2.96 -3.0 только как вторым-третьим компилятором в системе. иначе неожиданности вам просто гарантированны...

Avel
()

"для ядер gcc-2.96-99 - 2.96.101 очень даже подходят"
 
а ты целыми днями сидишь ядра клепаешь? ;)
или софта кроме ядра и mysql а нету? ;)

"На то он и linux что бы самодеятельностью заниматься."

пусть GNU  сначала поддержит этот компилер, потом я себе его поставлю ;)

"Тем более, что получается лучше. "
Ситуация с MySQL показала как лучше. 

P.S. стоит Slackware  с 2.95.3

silver
()

"GNU поддержала" 3.0.x... И что, он стал от этого более стабильным?

anonymous
()
Ответ на: комментарий от silver

> пусть GNU сначала поддержит этот компилер, потом я себе > его поставлю ;) кто такой этот ГНУ? gcc steering? так если бы их цигнусовые ребята не пнули 2.96ым то они бы вообще умерли от пароксизма довольствия :) а monty известен любовью оптимизировать что попало в надежде сделать лучше компилятора - вот и попался. Насколько я понимаю, сам он вообще только с pgcc работает

trustix
()

Советы по решению проблем в стиле "не работает - переустанови Windows"!!!

pin
()

Чего-то я не пойму причины споров.

Что, есть здесь кто-то, кто считает, что gcc 2.96 - stable?

Фактически, разработчики MySQL ткули носом девелоперов Red Hat'а в их детище, с которым они (red hat) почему-то носятся, как с писаной торбой. Вот, мол, включаете в свой дистрибутив нестабльно работающий из-за неправильной сборки сервер баз данных.
И правильно сделали, молодцы MySQL AB! Red Hat и так от важности скоро лопнет.

mazay
() автор топика
Ответ на: комментарий от mazay


ага. Каким компилятором Alan Cox ядра билдит? а Marcello? вообще употреблять слова stable и gcc рядом можно только с будуна. Они все кривые и каждое по своему. А то, что mysql влетит рано или поздно было ясно и ранее - не надо оптимизацией заниматься вместо компилятора

trustix
()
Ответ на: комментарий от mazay

> Что, есть здесь кто-то, кто считает, что gcc 2.96 - stable?

Стабилен только хаос. Что касается вопроса gcc 2.96 vs. 3.0.x, то тут еще не известно кто более живой.

> Фактически, разработчики MySQL ткули носом девелоперов Red Hat'а в их детище, с которым они (red hat) почему-то носятся, как с писаной торбой.

Gcc 3.0 имеет теже проблемы. И более того, виноват в них сомнительно написанный код MySQL.

maxcom ★★★★★
()

2 mazay (*) (2001-12-07 15:22:22.0
RH без MySql проживет легко, а вот у MySql проблемы еже есть
-- судя по крикам.
RH важен, в первую очередь, oracle, во вторую sybase и db2.

BlackRabit
()

>Gcc 3.0 имеет теже проблемы. И более того, виноват в них сомнительно написанный код MySQL.
но другого mysql у нас нет. зачем хавать молча код и делать на выходе нечто неработоспособное?
проблема не в том что gcc какой то версии не собирает ту или иную прогу, а втом что собрав прогу можно только молиться, что она работает.

Avel
()
Ответ на: комментарий от Avel

Avel, Си такой язык в котором можно очень легко делать непереносимые компиляторо-зависимые хаки. И ничего с этим не поделаешь, gcc тут не причем. Писать надо акуратно и переносимо, тогда будет все ок.

maxcom ★★★★★
()

2 maxcom: ты забыл добавить, что "писать надо уметь" Ж)
---
wtf_

anonymous
()
Ответ на: комментарий от BlackRabit

А по каким крикам вы ориентируетесь? MySQL очень дотошно относится к своей бд. (К примеру только у них кроме альфы и беты бывают еще и гамма версии, или к примеру сам факт, что они статически компонуют базу с теми бибками (glibc) в которых уверены), и то, что они об этом написали -- свидетельстует, что они не поленились и докопались до сути -- что же происходит. А большинство других -- просто наплевали на это в расчете что "само пройдет"

walrus
()
Ответ на: комментарий от maxcom

MySQL работает не только под линуксом, а на нескольких платформах. так что код там "аккуратный и переносимый". Достаточно переносимый, чтобы компилироваться под windows не cygwin-ом (как например PG) а висуальмым микрософтовским С

walrus
()

У меня дома Slackware 8.0. Все знают, какие там libc и gcc. Так вот, mozillа никогда не падает, ОпернОфис - на редких word файлах. У коллеги SuSE 7.0 на работе. У него kde никогда не падает.
Знакомым надо было привести в чувство mandrake 8.1 - я всё руками перевёл на koi8-r, а вот обратиться к swat (настройщик самбы) - и конкерор, и мозилла неожиданно падали с segfault. И очень часто.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

2Shadow дружище, ты не поверишь, но то что ты рассказал показывает только то, что ты не очень понимаешь чего делаешь :)

trustix
()

Если семтно то мне за gcc страшно! последний стабильный релиз был 2,95-3, после него полный бред(2.96, 3.0.2). Вечно целый день ядро переписовать нужно прежде чем оно соберетса :(

(zaz Sorry registrirovatsa vlom)

anonymous
()

а другие БД aka postgres, msql как с gcc 2.96 и 3.0 компилятся?

anonymous
()

Я сам все из src компиляю, ядра всякие, mssqlи, oraclы.
Хлеб тоже сам мешу и пеку.
Профессия у меня профессиАНАЛЬНЫЙ компилятор и делать мне больше нечего.
и времени лишнего много.

anonymous
()

maxcom, я в курсе про язык С и даже С++, который еще более компилерозависим сам по себе, но это только добавляет проблем компилерописателям.

>И ничего с этим не поделаешь, gcc тут не причем.
я готов долго спорить, кто там причем, а кто нет. Главное - вывод. У меня ситуации, когда один и тотже код нормально собирается в 2.95 и молча, но неверно собирается 296+ не единичны. Более того, я уже слышал про код, который собирается 3.0.1 но валится на 3.0.2! я не могу весь код перепроверить и исправить в соответствии со вкусами новых компиляторов. и не могу отказаться от использования этих программ. стало быть в нормальной и стабильной работе можно пользоваться только 2.95. собственно, это вся мысль. ничего личного.

>Писать надо акуратно и переносимо, тогда будет все ок.
возможно. но я в этом уже не уверен.

Avel
()

2trustix:
Очевидно, у тебя есть некое тайное знание. Намекни, а? пять лет всё понимал, а теперь нихрена понимаю! Ну-ну.

Shadow ★★★★★
()

Этой новости, про проблему с ядром 2.2.14, уже как сто лет в
обед... А про gcc-2.96 выше билда 85 - не верю! Если эта
проблема была замечена во времена ядра 2.2.19, то могу еще
поверить, но извините, gcc-2.96 не стоит на месте в своем
развитии, MySQL у меня собран именно им, gcc 2.96-98, и что то я
ненаблюдал тех проблем, о которых говорится в их предупреждении,
речь наверняка идет про версии меньше 2.96-85, так что эта
проблема отметается сразу, по причине прошедших времен и
переодического обновления gcc-2.96 в лучшую сторону...

McMCC ★★★
()

"У меня ситуации, когда один и тотже код нормально собирается в 2.95 и молча, но неверно собирается 296+ не единичны. Более того, я уже слышал про код, который собирается 3.0.1 но валится на 3.0.2! "

Вчера свет увидел? Такие проблеммы - вечные, и кросс-платформенные. ;-)
Пользователи Майкрософт Виндовс жалуются на VC++/BBuilder, пользователи Linux жалуются на всякие там gcc... и так будет всегда. Всегда надо было\надо\и будет нужным "подгонять" код под новый компилер. Если бы все было совместимо со старым - прогресса мы бы не наблюдали. Факт - ветка виндовса 9х погибла (прошедшее время) потому, что делали всякие совместимости. Зато в 9х мы наблюдали изумительные результаты - драйвера\программы даже с Виндовс 3.1 работают.
Чтобы двигаться вперед надо выкинуть старое, а то это будет вечным грузом на плечах.
А иногда очень полезно делать все from scratch. Примеру тому Bind, KDevelop 3.0 gideon.

p.s. Сам юзаю Slack 8. Проблеммы наблюдал только с новым autoconf'ом + kdevelop. Причем kdevelop последней версии все пофиксили.

logIN
()
Ответ на: комментарий от Shadow


> Знакомым надо было привести в чувство mandrake 8.1 - я всё руками > перевёл на koi8-r, а вот обратиться к swat (настройщик самбы) - и > конкерор, и мозилла неожиданно падали с segfault. И очень часто.

тайных знаний не держим :). просто если без koi8-r не падает в segfault, а с ним падает, то компилятор то тут причем?

trustix
()

>"У меня ситуации, когда один и тотже код нормально собирается в 2.95 и
>молча, но неверно собирается 296+ не единичны. Более того, я уже слышал
>про код, который собирается 3.0.1 но валится на 3.0.2! "

>Вчера свет увидел? Такие проблеммы - вечные, и кросс-платформенные. ;-)

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

Avel
()

Лично у меня сейчас стоит Debian Woody, gcc там 2.95.4 !!! и сидит куда стабильнее мандрейка 8.0. Вообще-то, я до восьмой версии уважал мандрейк, ну а как увидел дебиан, что понял, что я об _этом_ мечтал всю жизнь, только не знал этого.

Eldhenn
()
Ответ на: комментарий от maxcom

> Gcc 3.0 имеет теже проблемы.

Тут ты мимо. gcc-3.0 никто не ставит основным компилятором в системе в отличие от gcc-2.96.

> И более того, виноват в них сомнительно написанный код MySQL.

А не приходилов голову, что сомнительным может быть код gcc-2.96?
Мое мнение - нужно давить на корню всех дистрибьюторов, играющих в игру gcc-что-хочу-то-и-делаю.
Такие базовые компоненты должны быть сторого стандартизованы. В противном
случае они не имеют права выпускать их с теми же названиями. Если на лицо
явный форк в разработке gcc, то пусть честно называют его redhatcc, чтоб
не пудрить людям мозги и не отнимать у них время на борьбу с несовместимостями.
Это относится и к Debian с его gcc-2.95.4. Нет такого зверя в природе.

anonymous
()

2 Eldhenn: Вот так и представилось, лежить Eldhenn в коляске, какает в штаны и мечтает о дебиане. :-)

Bluezman
()
Ответ на: комментарий от Avel

Я вот что скажу.

Postgres 2.96 компилится прекрасно, и работает нормально. Что касается 2.95 то у меня есть своя собственная C++ прога, на которой он свихивается. Как только размер файла после прохода препроцессора превышает 0.5M - начинает находить ошибки в системных хедерах, материться на все встреченные this, etc etc. Убираю -O2 - все собирается. Ну не баг ли? :-)

anonymous
()

про -O2 тут прикол был недавно на FreeBSD.

Программа типа:

int a;
int b;

a = 10;
print a;

b = 20;
print a;

Под FreeBSD версии 4.2 с опцией -O2 выдает не 1010, а 1012233453 и не всегда, а примерно 1 раз из 15. Вот пободался тогда.

Korwin ★★★
()

Та ни... :))))
В общем, koi8-r при том был, что люди, поставив "OUT-OF-THE-BOX" мандраку, и никогда не видевшие юниксов, получили геморрой и лекцию, почему им не нужна кодировка ru_RU.CP1251 и почему нельзя было оставлять некоторые переменные в виде ru_RU - ибо последнее суть вообще iso...

А падает там всё тяжёлое под иксами... т.е. gcc 2.96 + славная pentium оптимизация = редкая нестабильность.

Shadow ★★★★★
()

2Korwin:
А может, у тебя там были в printf разночтения, что ты выводишь - integer или double какой? Я в таких случаях строго типы отслеживаю, а если что пропускаю, как раз хрень как у тебя и выходит!

Shadow ★★★★★
()

А по-моему gcc-3.0.2 рулит, конечно ставить его в дистрибы еще ранова-то, но код он генерит быстрый(это что касается C), а что касается C++, то он генерит код ОЧЕНЬ быстрый, особенно если код плюсовый, а не ala C(посему qt и kde, mozilla собраны им..., причем скорость возрасла заметно. Падучесть... а что это такое? я такого за кде уже с версии 2.2.1 не замечал... а mozilla уже и не помню когда падала в последний раз)

Во-вторых, всем кто там наехал на ГНУ, я думаю стоит удалить все гнуcное..... и посмотреть, что останется в системе... только на наручные часы и хватит...

У меня стоит SuSE7.1.... ядро 2.4.16, glibc-2.2.4, Magic+SysRQ были выключены за ненадобностью :)

--- Have a lot of fun!

dimonb
()

>2 Avel: чего у вас нет?
времени и желания отлаживать простейшие конструкции и разбираться с особенностями разночтений одной и той же конструкции разными gcc

>dejagnu это для кого?
на мой взгляд, для отладки критичного или базового софта. не для бухгалтерий и текстовых редакторов :)

Avel
()

> разбираться с особенностями разночтений одной и той же конструкции
Пишите стандартно и не мучайте себя я других.
А то напишут, блин, a=a++ + ++a; а потом удивляются, что все компиляторы трактуют сие по разному. И ещё больше удивляются тому, что по стандарту результат выражения произволен....

AffreuxChien
()

2Shadow
> А может, у тебя там были в printf разночтения, что ты выводишь -
> integer или double какой? Я в таких случаях строго типы отслеживаю, а
> если что пропускаю, как раз хрень как у тебя и выходит!
Если бы только printf, то это был бы копирайт Огра :-)
У меня же это были данные для работы с ДБ.
Вот отлаживать пришлось попотеть...
И при том не просто данные, а ID который "#%:?"# случайным образом в программе изменялся, даже если стоял const!!

Ну да ладно дело прошлого. Теперь с -O2 не балуюсь

Korwin ★★★
()

Про gcc 3.0.2

Собрал на rh7.2 этим же гсс пытался компилить кернел - не удалось постгрес прекрасно скомпилиися и работает апач + пхп тоже использовал -Os -march=i686

anonymous
()
Ответ на: Про gcc 3.0.2 от anonymous

> использовал -Os -march=i686

А смысл в этой конструкции? Все равно что купить мерс и заправить его 76-м бензином.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.