I forgot mentioning that we use LAVA 2017.10-1.
From: Lava-users [mailto:lava-users-bounces@lists.linaro.org] On Behalf Of Dragos Iorgulescu Sent: Monday, December 18, 2017 12:47 PM To: lava-users@lists.linaro.org Subject: [Lava-users] Unpacking tar.bz2 root filesystems seems to malfunction
Hi all!
I am working with some Raspberry Pi boards and, while defining some particularities for booting via NFS, I came across an issue regarding the way the rootfs file is unpacked. To be more specific, after looking through the LAVA code, it seems that the untar_file() method runs on the conditional branch that states the tar members are specified. I do not understand how this implementation is designed in regards to tar archive manipulation, but the following scenario takes place:
* The rootfs archive we specify in the job definition is copied and renamed, the extension being changed from .tar.bz2 to a plain .tar (which seems a bit strange tom e, on its own) * Then, after unpacking to the LAVA temp job dir, only two directories are extracted from the whole rootfs archive. I did manage to „inverveene” while the job was running and looking in the temp dir to see exactly what gets extracted. Since the rest of the folders from the rootfs are not available, the job fails once the system starts booting
While investigating, I noticed that the untarf_file() method is invoked from download.py (/usr/lib/python2.7/dist-packages/lava_dispatcher/pipeline/actions/deploy/) - @ line 344 – with members being specified. I know that, because when I manually changed how this call is made and clearly specified “None” for the “member” positional argument, I get the following error at job runtime: https://paste.debian.net/1001252/https://url10.mailanyone.net/v1/?m=1eQsxY-0006tI-52&i=57e1b682&c=I4FXDEPBzsyMKM7czyB5dUescfmbezxbX419rfkW1M853SjHRcLmcQC3irth51XXmc6Shiqtu6rTzH4HTpka2oe61_j8APT6Hmv2KbTD1AcNwuEpDwFRDXbX_Ghz004MJl0LAmA9T1urJDfTp7pdT9xAiApewgHZo9-jMCUyjnPnhMNuufWFJ11G4MtHRnZUDqYV8Qcrjlkpl5oi-DTZiM73orhcSJxRc6q0R7-H1M8 (the full job log can be found here: https://paste.debian.net/1001253/https://url10.mailanyone.net/v1/?m=1eQsxY-0006tI-52&i=57e1b682&c=A8GVVtE9YH-daa12E-142CL-zdSTEVD30HeXcHD5NZ9ptLTiJ2OgKafAA5MJPbg6m5np7vxihC5zqOnzBm5O75aAKoCGNr3QdaBikNYXdWfDEuYUsxAVUHEdiyJF-iZNnPX-2nTYUdAHJWcwiw1ccrojI_a6d6OphIFWC0p4MAmgsZJYykcGeOndvvq5dJ5f96NP1ZCSrAHJIVTYEFwd1ke2SmtpgqUB1fYSGRQ_8LA )
The code changes I am talking about (and the code where I suspect something is ambiguous) are pointed out here: https://paste.debian.net/1001256/https://url10.mailanyone.net/v1/?m=1eQsxY-0006tI-52&i=57e1b682&c=t4dnV7iaOZUYlQU3cBixGPf743P2bUdH4pdPVHc6AElGD5QPsWMYPvHZEfBjUv4hJMJAVE699K76VuHeZAGZn4fMHB7DQQpcOW9iwhir94D-0AOR2bWGy6MXO0bfojiSOH2ISmqp9XM-XSiuXLI_CuKP7du_qe7neaWrkGmHa6FY2VfAPH0bL8ENrTxJ32fqPfXxGVF-dPXAMDVzoDu_bb31v5VmdbK5AkgQOyhV8yI . A job definition we use for this board integration can be analyzed here: https://paste.debian.net/1001257/https://url10.mailanyone.net/v1/?m=1eQsxY-0006tI-52&i=57e1b682&c=brW-sVo8LJ5PQ5NR-DDWJqqk9GRFySMnINzObFEScBaK2DHIIaGOdduotjZ_yrTbqsJC5SnrYBEvtNUii9T2zeBfQ1Uh0Yesgj1Z7uhvjYQCdgy1E9PmmXqxvD1RBIdRr29waadhSef0iRrOSqqayVwoTALZXgs4eUXMN2mdPiP6AuMw-vp4hBvgclj7m0WkWWdyKbkgjCivSCRvxzPT9pOF4xHcVB16X8hbWbcfIIs
The full log of the initial job, that ran without my code changes, can be found here: https://paste.debian.net/1001254/https://url10.mailanyone.net/v1/?m=1eQsxY-0006tI-52&i=57e1b682&c=JQaVFlVuTDCDSPdmGA3ruiE8BUQhlMVA7R56mjn87e6KNL5UWe5Y72O-_0kSziYYiURgvSk69FxcM1pGGw4XrPQs_FPXvsk04aa5CVM0uNsbi3oOqsiNRHYxTg3xrEUYSTOxGY9R3zdkuT4IlaSqBydQ1TZtnkU8H74vb4fX_jEG9mUtu0WGsdoLIbwe2yzeZPQXDX2_DS9Fe0HCPIKKfgew_vcJ6jc5bOiUk0eIWLw . The „kernel panic” message ocurs because, as stated in one of the errors, the “init” folder is missing, which is accurate, because only bin & dev are extracted from our rootfs tar.bz2 archive.
What could we do? Is this something that needs to be adjusted/fixed in LAVA?
Kind regards, Dragoș