Bug 17806 - В новом glibc не работает futimes на kernel-image-ovz-smp-2.6.18
: В новом glibc не работает futimes на kernel-image-ovz-smp-2.6.18
Status: CLOSED FIXED
: Branch 4.0
(All bugs in Branch 4.0/kernel-image-ovz-smp)
: 4.0
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-11-06 19:46 by
Modified: 2008-11-14 23:17 (History)


Attachments
исходник (598 bytes, application/octet-stream)
2008-11-06 20:29, AntonRundnev
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-11-06 19:46:16
$ rpm -q glibc
glibc-2.8.90-alt2

В этой сборке функция futimes реализована через системный вызов utimensat (хотя
glibc умеет и по-другому), который отсутствует в ядрах старее 2.6.22.

Получается, что новый glibc не полностью работоспособен на старых ядрах, причём
узнать это малореально.
------- Comment #1 From 2008-11-06 19:57:00 -------
(In reply to comment #0)
> $ rpm -q glibc
> glibc-2.8.90-alt2
> 
> В этой сборке функция futimes реализована через системный вызов utimensat (хотя glibc
> умеет и по-другому),

Там есть fallback на прежний метод, который работает через /proc.

> который отсутствует в ядрах старее 2.6.22.
> 
> Получается, что новый glibc не полностью работоспособен на старых ядрах,

В чём это выражается?  Вывод strace, ещё чего-нибудь есть?
------- Comment #2 From 2008-11-06 20:27:51 -------
есть.

исходник приаттачен.

испытание номер раз:
[mibori@builder glibct]$ ./a.out
fd = 4
futimes error, errno == 14
error is : Bad address
[mibori@builder glibct]$ uname -r
2.6.18-ovz-smp-alt24
[mibori@builder glibct]$ rpm -q glibc
glibc-2.8.90-alt2
[mibori@builder glibct]$

испытание номер два:
[mibori@atlant glibct]$ ./a.out
fd = 4
futimes normal
[mibori@atlant glibct]$ uname -r
2.6.25-std-def-alt6.M41.1
[mibori@atlant glibct]$ rpm -q glibc
glibc-2.5.1-alt7
[mibori@atlant glibct]$
------- Comment #3 From 2008-11-06 20:29:05 -------
Created an attachment (id=3043) [details]
исходник

исходник
------- Comment #4 From 2008-11-06 20:37:37 -------
(In reply to comment #2)
> есть.
> 
> исходник приаттачен.
> 
> испытание номер раз:
> [mibori@builder glibct]$ ./a.out
> fd = 4
> futimes error, errno == 14
> error is : Bad address
> [mibori@builder glibct]$ uname -r
> 2.6.18-ovz-smp-alt24

В 2.6.18-std-smp этой проблемы нет.

В 2.6.18-ovz-smp есть системный вызов utimensat, портированный туда специально
людьми из openvz.org (коммит
028stab051-10-g815bdcacf0138c3b677e46445dcc778d2cfcc251).

К сожалению, этот бэкпорт нерабочий, лучше бы его вообще не было.
Я думаю что в следующей сборке ovz-smp для 4.0, которая будет очень скоро, этот
бэкпорт будет убран.
------- Comment #5 From 2008-11-14 02:04:46 -------
Fixed in kernel-image-ovz-smp-2.6.18-alt26.M40.2
------- Comment #6 From 2008-11-14 23:17:56 -------
Спасибо!