Bug 8458

Summary: Вылет 1С 8.2 при работе через NX
Product: WINE@Etersoft Reporter: Денис Баранов <baraka>
Component: Запуск ; Отладка ; ИсключенияAssignee: Александр Морозов <amorozov>
Status: CLOSED FIXED QA Contact: Svetlana Zhukova <svzhu>
Severity: critical    
Priority: P1 CC: kondratyuk, lav
Version: 2.0   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: 23618, 24378 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 100    
Deadline: 2012-06-01   

Description Денис Баранов 2012-05-16 12:23:24 MSK
Воспроизведение:
Открываем конфигуратор> Конфигурация>Открыть конфигурацию>Документы> правой кнопкой на любом документе>Открыть основную форму объекта
Происходит вылет 1С, в консоли:
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  149 (RENDER)
  Minor opcode of failed request:  34 (RenderCreateLinearGradient)
  Value in failed request:  0x0
  Serial number of failed request:  150091
  Current serial number in output stream:  15037

Посмотреть наверное можно в любой бутылке, я проверял в
swine -h eter-2.0 1c82/15.301 --nx
Comment 1 Александр Морозов 2012-05-17 18:16:44 MSK
Ошибка возникает в результате вызова XRenderCreateLinearGradient. В принципе, можно сделать воркэраунд с помощью XRenderQueryVersion:

@@ -391,6 +393,19 @@ const struct gdi_dc_funcs *X11DRV_XRender_Init(void)
 #undef LOAD_OPTIONAL_FUNCPTR
 #undef LOAD_FUNCPTR
 
+    if (pXRenderCreateLinearGradient)
+    {
+        int major, minor;
+
+        pXRenderQueryVersion(gdi_display, &major, &minor);
+        FIXME("major %d minor %d\n", major, minor);
+        if (major == 0 && minor < 11)
+        {
+            WARN("disable using XRenderCreateLinearGradient\n");
+            pXRenderCreateLinearGradient = NULL;
+        }
+    }
+
     wine_tsx11_lock();
     ok = pXRenderQueryExtension(gdi_display, &event_base, &xrender_error_base);
     wine_tsx11_unlock();

Для стоящих у меня на машине иксов major = 0, minor = 11, а в nx major = 0, minor = 10. Но нет уверенности, что во всех иксах с minor = 10 есть данная проблема.
Comment 2 Александр Морозов 2012-05-17 20:10:51 MSK
Сделан воркэраунд, проверяющий наличие NX с помощью переменной окружения NXSESSIONID.
Comment 3 Svetlana Zhukova 2012-05-19 12:33:29 MSK
2.0-eter2.12/6 в вышеупомянутой бутылке воспроизвелось. Подключалась через builder.
Comment 4 Svetlana Zhukova 2012-05-19 12:55:30 MSK
Рано проверила.
(В ответ на comment #3)
> 2.0-eter2.12/6 в вышеупомянутой бутылке воспроизвелось. Подключалась через
> builder.
Comment 5 Svetlana Zhukova 2012-05-21 11:18:59 MSK
WINE@Etersoft SQL 2.0.1-eter10/6
Принято.