Mengapa pria mencetak “beri aku beri aku beri” pukul 00:30?

1624

Kami telah memperhatikan bahwa beberapa pengujian otomatis kami gagal ketika dijalankan pada pukul 00:30 tetapi bekerja dengan baik sepanjang hari. Mereka gagal dengan pesan "beri aku beri aku beri" di stderr, yang tidak diharapkan. Mengapa kita mendapatkan hasil ini?

Jaroslav Kucera
sumber
5
Menautkan: unix.stackexchange.com/questions/226716/…
Jeff Schaller
54
Saya tidak mengerti. Mengapa skrip pengujian Anda memanggil man di mana seharusnya gagal?
Yosua
19
@ Yosua Karena kami menginginkan "jalur" - 'lelaki-w'. Lihat jawabannya.
Jaroslav Kucera
67
Demi sejarah, mengapa Anda perlu melakukan 'pria-w' setiap menit? apa yang sebenarnya kamu uji?
Olivier Dulac
22
@OlivierDulac Dipicu hanya sekali dalam ujian. Kami telah menata ulang urutan tes dan tiba-tiba kesalahan ini muncul karena dipicu pada pukul 00:30 ...
Jaroslav Kucera

Jawaban:

2145

Dear @colmmacuait , saya berpikir bahwa jika Anda mengetik "man" pada jam 0001 itu harus mencetak "gimme gimme gimme". #abba @marnanel - 3 November 2011

eh, itu salah saya, saya sarankan. Maaf.

Hampir seluruh cerita ada di komit. Pemelihara manusia adalah teman baik saya, dan suatu hari enam tahun yang lalu saya bercanda mengatakan kepadanya bahwa jika Anda memohon pria setelah tengah malam itu harus mencetak " gimme gimme gimme ", karena lagu Abba disebut " Gimme gimme gimme a man setelah tengah malam ":

Yah, dia memang benar-benar meletakkannya di . Beberapa orang merasa geli ketika menemukannya, dan kami kebanyakan melupakannya sampai hari ini.

Saya tidak bisa berbicara untuk Kol , jelas, tetapi saya tidak berharap ini akan menyebabkan masalah: tes seperti apa yang akan merusak penguraian output dari manusia tanpa halaman yang ditentukan? Saya kira saya seharusnya tidak terkejut bahwa seseorang muncul pada akhirnya, tetapi butuh enam tahun.

( Pesan komit memanggil saya Thomas, yang merupakan nama depan sah saya meskipun saya tidak menggunakannya secara online.)

Masalah ini telah diperbaiki dengan komit 84bde8 : Running man dengan man -wtidak akan lagi memicu telur paskah ini.

Marnanel Thurman
sumber
361
Ups! Itu tidak pernah dimaksudkan untuk mempengaruhi kasus non-kesalahan. Saya tidak memperhitungkan ini ketika saya menerapkan git.savannah.gnu.org/cgit/man-db.git/commit/… . Diperbaiki master: git.savannah.gnu.org/cgit/man-db.git/commit/…
Colin Watson
3
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
terdon
13
Komentar tersebut untuk meminta klarifikasi dan / atau mendiskusikan poin-poin teknis dari suatu jawaban. Jika Anda ingin mendiskusikan manfaat telur Paskah, silakan bawa untuk mengobrol .
terdon
8
Mamma mia, sekarang aku benar-benar tahu!
Enrico Maria De Angelis
3
mungkin manusia membutuhkan parameter --seriously
Patrick Taylor
422

Ini adalah telur paskah di man. Ketika Anda menjalankan mantanpa menentukan halaman atau dengan -w, itu output "beri aku beri aku beri" ke stderr, tetapi hanya pada 00:30:

# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man

Kode keluar selalu 0.

Output yang benar harus selalu:

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

String "gimme gimme gimme" dapat ditemukan di RHEL, OpenSUSE, Fedora, Debian dan mungkin lebih, jadi itu bukan distro yang spesifik. Anda dapat memverifikasi biner grepAnda man.

Kode ini bertanggung jawab untuk output , ditambahkan oleh komit ini :

src/man.c-1167- if (first_arg == argc) {
src/man.c-1168-   /* 
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169-   time_t now = time (NULL);
src/man.c-1170-   struct tm *localnow = localtime (&now);
src/man.c-1171-   if (localnow &&
src/man.c-1172-       localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173:     fprintf (stderr, "gimme gimme gimme\n");

Saya telah menghubungi dukungan RHEL tentang masalah ini.

String ini berasal dari lagu ABBA yang terkenal Gimme! Beri aku Beri aku (Seorang Pria Setelah Tengah Malam) .


Pengembang man-db, Colin Watson, memutuskan bahwa ada cukup kesenangan dan ceritanya tidak akan dilupakan dan menghapus telur paskah sepenuhnya .

Colin terima kasih!

Jaroslav Kucera
sumber
147
Pada platform yang faketimetersedia, Anda dapat mencoba ini tanpa perlu mengubah waktu sistem: faketime '00:30:00' man(Debian 8).
roaima
5
@rrauenza Ada tiket buzilla: bugzilla.redhat.com/show_bug.cgi?id=1515352
Jaroslav Kucera
38
Penulis sekarang telah mengencangkan telur paskah untuk hanya berjalan man, bukan man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/… dan komentar Colin tentang pengakuan Marnanel's confessio ^ Wanswer .
Martijn Pieters
21
Sebutkan bahwa komit awal dipicu pada 12:01. Komit tindak lanjut mengubah bahwa menjadi 12:30 dengan pesan log komit "setengah dua belas" yang sekali lagi dikutip dari lagu yang sama.
egmont
6
@ 0x90 man -wmencetak jalur pencarian halaman buku panduan saat ini, yang merupakan hal yang mungkin cukup Anda gunakan sebagai blok bangunan untuk hal lain, misalnya jika hal yang Anda otomatisasi melibatkan menginstal atau menguji halaman manual.
Colin Watson
363

Setelah beberapa refleksi, saya telah menghapus telur Paskah ini . Itu akan hilang di man-db 2.8.0 mendatang.

Saya senang bahwa itu membuat beberapa orang tersenyum, yang setelah semua tujuan itu, dan pemberitahuan Twitter saya dan seterusnya hari ini menunjukkan bahwa kebanyakan orang berpikir itu lebih lucu daripada mengganggu. Tetap saja, beberapa orang merasa hal itu menjengkelkan, dan enam tahun sepertinya berjalan cukup baik untuk hal semacam itu; itu mungkin tidak akan mendapatkan eksposur yang jauh lebih baik daripada yang sudah ada sebelumnya melalui pertanyaan ini. Saatnya menidurkannya.

Colin Watson
sumber
121
Saya sangat sedih Anda memutuskan itu. IMO terlalu banyak orang memilikinya untuk telur paskah.
Seth
36
Saya tidak akan mengesampingkan menambahkan sesuatu yang berbeda di masa depan, meskipun dengan lebih hati-hati! Tapi itu agak basi, dan humor memang membutuhkan kebaruan.
Colin Watson
31
Saya harus setuju dengan @Seth, sedih melihat sesuatu yang membuat sebagian besar dari kita tersenyum, kita membutuhkan lebih dari itu di dunia ini.
Videonauth
189
Saya harap ini tidak merusak alur kerja apa pun xkcd.com/1172
Lakshay Garg
73
@ColinWatson Saya pikir menonaktifkan ini dalam aliran default adalah ide yang bagus, sehingga tidak merusak alur kerja siapa pun. Tetapi pada saat yang sama, sayang sekali mahakarya seperti itu harus dihapus. Anda bisa menambahkan bendera khusus seperti man -abbadan ketika ditembakkan setelah tengah malam akan memberikan telur paskah.
Bartlomiej Skwira