<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>9034</bug_id>
          
          <creation_ts>2016-02-02 13:25:46 +0000</creation_ts>
          <short_desc>The PR Service deletes the -wal and -shm sqlite files when daemonizing</short_desc>
          <delta_ts>2016-03-14 15:21:18 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>2.0.2</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>High</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.1 M3</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Diego Santa cruz">Diego.SantaCruz</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>bogdanx.a.voiculescu</cc>
    
    <cc>costin.c.constantin</cc>
    
    <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
          
          <qa_contact name="Costin">costin.c.constantin</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58443</commentid>
    <comment_count>0</comment_count>
      <attachid>2962</attachid>
    <who name="Diego Santa cruz">Diego.SantaCruz</who>
    <bug_when>2016-02-02 13:25:46 +0000</bug_when>
    <thetext>Created attachment 2962
Patch fixing -wal and -shm sqlite file deletion

When daemonizing the PR service the -wal and -shm sqlite files are being deleted, although they should never be (see https://www.sqlite.org/wal.html and https://www.sqlite.org/tempfiles.html).

While the daemonized process keeps the file descriptors open (seen from /prid&lt;pid&gt;/fd on linux) and thus a clean exit does not loose any data, a power outage would loose all data in the WAL as the -wal file is unavailable when sqlite does its recovery, so even committed transactions would be lost.

Removing these files also breaks sqlite collaboration between processes and furthermore prevents taking proper backups without stopping the PR service (e.g., with sqlite3 shell&apos;s &quot;.backup&quot; command).

The reason the files are deleted is that the DB connection is opened in the initial process, before forking for daemonization. When the DB connection is closed by the exiting parent processes it can delete the -wal and -shm files if it considers itself to be the last connection to the DB. This is easily fixed by opening the DB connection after all forking.

The attached patch does this (on top of jethro branch). With this I have been able to start the PR Service in daemon mode and the -wal and -shm files do exist and I can take proper backups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58447</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2016-02-02 14:17:10 +0000</bug_when>
    <thetext>Could you send this patch and those for the other PR server bugs you&apos;ve opened to the bitbake-devel list please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58450</commentid>
    <comment_count>2</comment_count>
    <who name="Diego Santa cruz">Diego.SantaCruz</who>
    <bug_when>2016-02-02 14:20:02 +0000</bug_when>
    <thetext>Sure! I&apos;ll subscribe to the list and send them in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58922</commentid>
    <comment_count>3</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2016-02-11 20:58:15 +0000</bug_when>
    <thetext>http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=be032fc40eb315841fdd1f69c780726619ea1bad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59496</commentid>
    <comment_count>4</comment_count>
    <who name="Costin">costin.c.constantin</who>
    <bug_when>2016-02-26 14:31:19 +0000</bug_when>
    <thetext>Hello,

Tested on latest (23056103c949b498c23b47579e8dd57ce78e6ed9) master on an Ubuntu 15.10 host. 

Steps performed:
1) add in local.conf: 
PRSERV_HOST = &quot;localhost:0&quot;
INHERIT += &quot;buildhistory&quot;
BUILDHISTORY_COMMIT = &quot;1&quot;

2) start prserv:
bitbake-prserv --start

3) ls builddir:
ls -1 poky/build
...
prserv.sqlite3  
prserv.sqlite3-shm  
prserv.sqlite3-wal
...

4) a) kill 9 prserv_pid 
     ps xau | grep python
      ...
     24681  ...  python /media/yp_builds/2poky/bitbake/bin/bitbake-prserv --start
     ...
     kill -9 24681

   b) simulate power outage by unplugging PC

for both 4.a) and 4.b) -shm and -wal files were still present

Marking as verified.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2962</attachid>
            <date>2016-02-02 13:25:46 +0000</date>
            <delta_ts>2016-02-02 13:25:46 +0000</delta_ts>
            <desc>Patch fixing -wal and -shm sqlite file deletion</desc>
            <filename>0001-bitbake-prserv-wal-and-shm-sqlite-lost-when-daemoniz.patch</filename>
            <type>text/plain</type>
            <size>2650</size>
            <attacher name="Diego Santa cruz">Diego.SantaCruz</attacher>
            
              <data encoding="base64">RnJvbSAyYTg2NmNmMDliZTdmNmNkMWU3ZDYxNzQxOGU4ODBlNDEwMDEzMjY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBTYW50YSBDcnV6IDxEaWVnby5TYW50YUNydXpAc3Bp
bmV0aXguY29tPgpEYXRlOiBUdWUsIDIgRmViIDIwMTYgMTM6MDQ6MjAgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBiaXRiYWtlOiBwcnNlcnY6IC13YWwgYW5kIC1zaG0gc3FsaXRlIGxvc3Qgd2hlbiBk
YWVtb25pemluZwoKV2hlbiBkYWVtb25pemluZyB0aGUgUFIgc2VydmljZSB0aGUgLXdhbCBhbmQg
LXNobSBzcWxpdGUgZmlsZXMgd2VyZQpiZWluZyBkZWxldGVkLCBhbHRob3VnaCB0aGV5IHNob3Vs
ZCBuZXZlciBiZS4gV2hpbGUgdGhlIGRhZW1vbml6ZWQKcHJvY2VzcyBrZWVwcyB0aGUgZmlsZSBk
ZXNjcmlwdG9ycyBvcGVuIGFuZCB0aHVzIGEgY2xlYW4gZXhpdCBkb2VzCm5vdCBsb29zZSBhbnkg
ZGF0YSwgYSBwb3dlciBvdXRhZ2Ugd291bGQgbG9vc2UgYWxsIGRhdGEgaW4gdGhlIFdBTC4KUmVt
b3ZpbmcgdGhlc2UgZmlsZXMgYWxzbyBicmVha3Mgc3FsaXRlIGNvbGxhYm9yYXRpb24gYmV0d2Vl
bgpwcm9jZXNzZXMgYW5kIGZ1cnRoZXJtb3JlIHByZXZlbnRzIHRha2luZyBwcm9wZXIgYmFja3Vw
cyB3aXRob3V0CnN0b3BwaW5nIHRoZSBQUiBzZXJ2aWNlLgoKVGhlIHJlYXNvbiB0aGlzIGhhcHBl
bnMgaXMgdGhhdCB0aGUgREIgY29ubmVjdGlvbiBpcyBvcGVuZWQgaW4KdGhlIGluaXRpYWwgcHJv
Y2VzcywgYmVmb3JlIGZvcmtpbmcgZm9yIGRhZW1vbml6YXRpb24uIFdoZW4gdGhlCkRCIGNvbm5l
Y3Rpb24gaXMgY2xvc2VkIGJ5IHRoZSBleGl0aW5nIHBhcmVudCBwcm9jZXNzZXMgaXQgY2FuCmRl
bGV0ZSB0aGUgLXdhbCBhbmQgLXNobSBmaWxlcyBpZiBpdCBjb25zaWRlcnMgaXRzZWxmIHRvIGJl
IHRoZQpsYXN0IGNvbm5lY3Rpb24gdG8gdGhlIERCLiBUaGlzIGlzIGVhc2lseSBmaXhlZCBieSBv
cGVuaW5nIHRoZQpEQiBjb25uZWN0aW9uIGFmdGVyIGFsbCBmb3JraW5nLgoKU2lnbmVkLW9mZi1i
eTogRGllZ28gU2FudGEgQ3J1eiA8RGllZ28uU2FudGFDcnV6QHNwaW5ldGl4LmNvbT4KLS0tCiBi
aXRiYWtlL2xpYi9wcnNlcnYvc2Vydi5weSB8IDEzICsrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFu
Z2VkLCA4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYml0YmFr
ZS9saWIvcHJzZXJ2L3NlcnYucHkgYi9iaXRiYWtlL2xpYi9wcnNlcnYvc2Vydi5weQppbmRleCBl
YWZjM2FhLi5jNjVkZDNjIDEwMDY0NAotLS0gYS9iaXRiYWtlL2xpYi9wcnNlcnYvc2Vydi5weQor
KysgYi9iaXRiYWtlL2xpYi9wcnNlcnYvc2Vydi5weQpAQCAtNjIsOSArNjIsNiBAQCBjbGFzcyBQ
UlNlcnZlcihTaW1wbGVYTUxSUENTZXJ2ZXIpOgogICAgICAgICBzZWxmLnJlZ2lzdGVyX2Z1bmN0
aW9uKHNlbGYuaW1wb3J0b25lLCAiaW1wb3J0b25lIikKICAgICAgICAgc2VsZi5yZWdpc3Rlcl9p
bnRyb3NwZWN0aW9uX2Z1bmN0aW9ucygpCiAKLSAgICAgICAgc2VsZi5kYiA9IHByc2Vydi5kYi5Q
UkRhdGEoc2VsZi5kYmZpbGUpCi0gICAgICAgIHNlbGYudGFibGUgPSBzZWxmLmRiWyJQUk1BSU4i
XQotCiAgICAgICAgIHNlbGYucmVxdWVzdHF1ZXVlID0gUXVldWUuUXVldWUoKQogICAgICAgICBz
ZWxmLmhhbmRsZXJ0aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldCA9IHNlbGYucHJvY2Vz
c19yZXF1ZXN0X3RocmVhZCkKICAgICAgICAgc2VsZi5oYW5kbGVydGhyZWFkLmRhZW1vbiA9IEZh
bHNlCkBAIC05OCwxMCArOTUsMTIgQEAgY2xhc3MgUFJTZXJ2ZXIoU2ltcGxlWE1MUlBDU2VydmVy
KToKICAgICAgICAgICAgIHNlbGYudGFibGUuc3luY19pZl9kaXJ0eSgpCiAKICAgICBkZWYgc2ln
aW50X2hhbmRsZXIoc2VsZiwgc2lnbnVtLCBzdGFjayk6Ci0gICAgICAgIHNlbGYudGFibGUuc3lu
YygpCisgICAgICAgIGlmIHNlbGYudGFibGU6CisgICAgICAgICAgICBzZWxmLnRhYmxlLnN5bmMo
KQogCiAgICAgZGVmIHNpZ3Rlcm1faGFuZGxlcihzZWxmLCBzaWdudW0sIHN0YWNrKToKLSAgICAg
ICAgc2VsZi50YWJsZS5zeW5jKCkKKyAgICAgICAgaWYgc2VsZi50YWJsZToKKyAgICAgICAgICAg
IHNlbGYudGFibGUuc3luYygpCiAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQKIAogICAgIGRlZiBw
cm9jZXNzX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MpOgpAQCAtMTQxLDYg
KzE0MCwxMCBAQCBjbGFzcyBQUlNlcnZlcihTaW1wbGVYTUxSUENTZXJ2ZXIpOgogICAgICAgICBz
ZWxmLnF1aXQgPSBGYWxzZQogICAgICAgICBzZWxmLnRpbWVvdXQgPSAwLjUKIAorICAgICAgICAj
IERCIGNvbm5lY3Rpb24gbXVzdCBiZSBjcmVhdGVkIGFmdGVyIGFsbCBmb3JrcworICAgICAgICBz
ZWxmLmRiID0gcHJzZXJ2LmRiLlBSRGF0YShzZWxmLmRiZmlsZSkKKyAgICAgICAgc2VsZi50YWJs
ZSA9IHNlbGYuZGJbIlBSTUFJTiJdCisKICAgICAgICAgbG9nZ2VyLmluZm8oIlN0YXJ0ZWQgUFJT
ZXJ2ZXIgd2l0aCBEQmZpbGU6ICVzLCBJUDogJXMsIFBPUlQ6ICVzLCBQSUQ6ICVzIiAlCiAgICAg
ICAgICAgICAgICAgICAgICAoc2VsZi5kYmZpbGUsIHNlbGYuaG9zdCwgc2VsZi5wb3J0LCBzdHIo
b3MuZ2V0cGlkKCkpKSkKIAotLSAKMS45LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>