The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Тестовый выпуск Flash 11 ознаменовал начало официальной подд..., opennews (??), 14-Июл-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


19. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  –1 +/
Сообщение от AHAHAC (ok), 14-Июл-11, 14:42 
> http://bugs.adobe.com/jira/browse/FP-5739 до сих пор не исправлен. Горе программисты,
> не умеющие использовать memcpy, блин.

Коль обвиняешь, значит понимаешь!
Своими словами опиши проблему?

Ответить | Правка | Наверх | Cообщить модератору

22. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  +3 +/
Сообщение от Аноним (-), 14-Июл-11, 14:50 
Я это за него сделаю: утупки из адобы полагаются на недокументированное поведение memcpy - при перекрытии диапазонов адресов источника и назначения, никто не гарантирует какой-то определенный результат (потенциально, источник может быть испорчен при копировании до того как его скопиуют, в зависимости от реализации копирования, и это не будет противоречить стандартам, которые не определяют поведение в этом случае). Адоба про стандарты разумется не в курсе и уповала на типовую фактическую реализацию. А парни из редхата во главе с легендарным снобом Ульрихом Дреппером переписали memcpy так что его поведение изменилось. И адоб флеш начал падать. Хотя сноб и его команда и виноваты в том что разворошили осиное гнездо, адоб виноват больше, поскольку полагается на то что никто никому не гарантировал, что чревато граблями. Которые они и отхватили.
Ответить | Правка | Наверх | Cообщить модератору

24. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  +1 +/
Сообщение от Stax (ok), 14-Июл-11, 14:56 
Использование memcpy для копирования между пересекающимися областями памяти не гарантирует корректного результата; memcpy можно использовать только в тех случаях, когда пересечения заведомо нет. Он работает быстрее, но если давать ему такие области, то результат не определен и может быть некорректным. Для тех случаев, когда области могут пересекаться, есть чуть более медленный memmove, который работает так же, как и memcpy, но гарантировано корректно обрабатывает такой случай.

У адоба во флеше где-то некорректно использовался memcpy, но ошибки никто не замечал, т.к. старая реализация memcpy в glibc корректно обрабатывала копирование при одном из видов пересечений (при другом все равно не работала). В процессе оптимизации сделали еще более быстрый memcpy, который, однако, стал некорректно обрабатывать тот самый вид пересечения, который раньше случайно работал. Т.к. новый memcpy быстрее и лучше, а некорректная обработка пересечений разрешена по спецификации ради скорости - кому нужна корректность, должны использовать memmove - его было решено оставить.

Однако же флеш по прежнему содержит вызов memcpy для пересекающихся областей - хотя это и не обязано работать, но это работало со старой glibc. С новым memcpy все ломается, как могло и быть изначально. Решается "хаком" LD_PRELOAD, который подменяет вызов memcpy на memmove, и все работает нормально. Но этот хак приходится загружать для всего браузера, который сам по себе (как и все остальное в системе) корректно использует memcpy, но ради флеша и его приходится везде переключать на тормозной memmove.

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

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору
Часть нити удалена модератором

29. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  +/
Сообщение от Stax (ok), 14-Июл-11, 15:14 
Новый быстрый memcpy создали специалисты из intel o.o
А Ульриху нужно быть по гроб благодарным, имхо, что держит glibc в чистоте и не идет на поводу быдлокодерами. В результате glibc самый быстрый, безопасный и соответствующий стандартам - а всякие быдлофлешы.. ну что ж.. пусть переписывают нормально.
Ответить | Правка | К родителю #97 | Наверх | Cообщить модератору

38. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  –2 +/
Сообщение от Аноним (-), 14-Июл-11, 16:04 
что там на счет того что glibc сливает в 4-6 раз freebsd libc на многотредовых приложениях ?
так быстрый или нет ?
Ответить | Правка | Наверх | Cообщить модератору

61. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  +1 +/
Сообщение от Аноним (-), 14-Июл-11, 19:06 
> А Ульриху нужно быть по гроб благодарным, имхо, что держит glibc в
> чистоте и не идет на поводу быдлокодерами.

Я помню как он захреначил что-то связанное с IPv6, так что завалилось несколько энтерпрайзов, админы которых срали кирпичами и пулей прилетели в багтрекер высказывать благодарность за качественный нагиб + вроде как инкриминировалось и поведение не соответствующее RFC. На что Ульрих заявил что шпага - у него, и не е...т. И закрыл тикет. После чего последовал целый цирк с конями, в роли которых выступала пачка обозленных админов, Ульрих и какие-то лулзы, которые завели поддельного Ульриха.

И, кстати, Ульриха надо благодарить за пачку форков и патченых версий глибцы, как и вагон альтернативных реализаций. Его тотальная некооперативность и непоколебимая позиция Д'Артаньяна со шпагой в виде кнопки "закрыть нахрен этот баг" в багтрекере - очень способствовала размножению форков и появлению более эффективных и компактных либ чем глибц. Переросточный, тормозной и с больными на голову майнтайнерами.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

102. "Тестовый выпуск Flash 11 ознаменовал начало официальной подд..."  +/
Сообщение от vleemail (ok), 15-Июл-11, 13:29 
О да, держит он его в чистоте. Это точно.
Вот примерно в такой http://bugs.archlinux.org/task/24615
"Такого бага не видал я сроду..."

Вот порадовались любители мгновенных обновлений.
Дреппер, конечно же, просто человек, но в проектах такого уровня
ТАКИЕ про%%%ы недопустимы.
Фикс вроде здесь: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=57912a...

А еще мне вот это очень нравится
http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=3154bf...

Давайте не будем про чистоту где бы то ни было.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру