Delphi RIO PAServer в Linux поднимает IOError 11 - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть странная проблема, которую я не могу решить самостоятельно:

Использование Delphi 10.3 Rio Enterprise в Linux (я пробовал свежие установки Ubuntu 16.04 и Ubuntu 18.04 Настольный ПК и сервер Ubuntu 18.04 с графическим интерфейсом в VMWare Player 15 ) PAServer аварийно завершает работу с Ошибка ввода-вывода 11 при каждом запуске отладки.Я могу вытащить SDK, и Delphi правильно развернет все файлы.Но попытка запуска заканчивается крахом и Delphi жалуется, что GDB Server больше не доступен.Я могу запустить программу на хосте Linux, запустив ее вручную (конечно, без отладки).

Это не зависит от пользователя в Linux, это также происходит от имени пользователя root.Кроме того, неграфическое приложение аварийно завершает работу даже на сервере Ubuntu без графического интерфейса, всегда с ошибкой ввода-вывода 11.

Отладка с помощью PAServer хорошо работает на OSX, Android и Windows.Я, конечно, попробовал простой простой проект с одной формой без контента с такими же результатами.

Я проследил Delphi PAClient с ProcMon, никаких доказательств с этой стороны.Затем я отслеживал процесс Linux с помощью strace, который дал мне такой вывод:

write(1, "Starting Platform Assistant Serv"..., 49Starting Platform Assistant Server on port 64211
) = 49
write(1, "\n", 1
)                       = 1
write(1, "Type ? for available commands\n", 30Type ? for available commands
) = 30
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 5
close(5)                                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5
getsockopt(5, SOL_SOCKET, SO_TYPE, [1], [4]) = 0
getsockopt(5, SOL_TCP, TCP_NODELAY, [0], [4]) = 0
setsockopt(5, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(5, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
bind(5, {sa_family=AF_INET, sin_port=htons(64211), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
getsockname(5, {sa_family=AF_INET, sin_port=htons(64211), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 6
getsockopt(6, SOL_SOCKET, SO_TYPE, [1], [4]) = 0
getsockopt(6, SOL_TCP, TCP_NODELAY, [0], [4]) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
bind(6, {sa_family=AF_INET6, sin6_port=htons(64211), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(6, {sa_family=AF_INET6, sin6_port=htons(64211), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
setsockopt(6, SOL_TCP, TCP_NODELAY, [1], 4) = 0
listen(5, 15)                           = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f8ab39f9000
mprotect(0x7f8ab39f9000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f8ab41f8ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f8ab41f99d0, tls=0x7f8ab41f9700, child_tidptr=0x7f8ab41f99d0) = 28987
sched_getparam(28987, [0])              = 0
sched_getscheduler(28987)               = 0 (SCHED_OTHER)
listen(6, 15)                           = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f8ab31f8000
mprotect(0x7f8ab31f8000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f8ab39f7ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f8ab39f89d0, tls=0x7f8ab39f8700, child_tidptr=0x7f8ab39f89d0) = 28988
sched_getparam(28988, [0])              = 0
sched_getscheduler(28988)               = 0 (SCHED_OTHER)
brk(0x1f55000)                          = 0x1f55000
brk(0x1f76000)                          = 0x1f76000
brk(0x1f97000)                          = 0x1f97000
brk(0x1fba000)                          = 0x1fba000
brk(0x1fdb000)                          = 0x1fdb000
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ab82b8000
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ab8287000
write(1, ">", 1>)                        = 1
read(0, 0xe0bf90, 128)                  = -1 EAGAIN (Resource temporarily unavailable)
read(0, 0xe0bf90, 128)                  = -1 EAGAIN (Resource temporarily unavailable)
shutdown(5, SHUT_WR)                    = 0
close(5)                                = 0
select(4, [3], NULL, NULL, {1, 0})      = 1 (in [3], left {0, 999997})
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\0", 1)                        = 1
select(4, [3], NULL, NULL, {1, 0})      = 1 (in [3], left {0, 817727})
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\0", 1)                        = 1
select(4, [3], NULL, NULL, {1, 0})      = 1 (in [3], left {0, 999997})
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\0", 1)                        = 1
shutdown(6, SHUT_WR)                    = 0
close(6)                                = 0
select(4, [3], NULL, NULL, {1, 0})      = 1 (in [3], left {0, 974854})
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\0", 1)                        = 1
shutdown(7, SHUT_WR)                    = 0
close(7)                                = 0
shutdown(8, SHUT_WR)                    = 0
close(8)                                = 0
select(0, NULL, NULL, NULL, {0, 500000}) = 0 (Timeout)
write(1, "EInOutError: I/O error 11\n", 26EInOutError: I/O error 11
) = 26

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Пожалуйста, проверьте https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1813873

В ядре Ubuntu 4.15.0-44 появилась эта проблема, и Ubuntu исправит эту проблему при следующем обновлении ядра, 4 марта.

0 голосов
/ 07 февраля 2019

Полностью пересмотренный ответ.

Похоже, что это не связано с vmWare Player 15, но как-то связано с Ubuntu, 16, а также 18. Во всех отладочных операциях, кроме ОС Linux, а также в Rhedhat 7 и Debian Stretch.

В Debian 9 мне пришлось использовать SDK, сгенерированный на машине с Ubuntu, так как при создании в Debian некоторые файлы отсутствовали.Может быть легко решить, но другой SDK делает свое дело.

...