<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Lock.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>61dea710fc1da6e08c9033ff498556a8a01d3b77 - fix(search): wait for a contended index lock and apply dperm</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/Lock.php#61dea710fc1da6e08c9033ff498556a8a01d3b77</link>
        <description>fix(search): wait for a contended index lock and apply dpermThe Lock rewrite (c66b5ec65) made Lock::acquire() fail immediately when thelock directory already existed, where the old indexer lock retried until theholder released it. Concurrent saves or indexer runs then aborted indexinginstead of serializing (recoverable only via the .indexed tag on the nextedit), and the lock directory was created without the configured directorypermissions, unlike every other directory DokuWiki creates.Mirror the io_lock() convention: wait for a contended lock, bounded by atunable wait timeout, before throwing; keep clearing locks older than fiveminutes as stale; and chmod the new lock directory to $conf[&apos;dperm&apos;]. Thegive-up path still throws IndexLockException, so the self-healing retry viathe .indexed tag is unchanged.

            List of files:
            /dokuwiki/inc/Search/Index/Lock.php</description>
        <pubDate>Wed, 08 Jul 2026 14:40:29 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>4e61aa71d0f1522f886a3c8fa8acf800ef2ca3a7 - fix(search): create index lock directories inside data/locks</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/Lock.php#4e61aa71d0f1522f886a3c8fa8acf800ef2ca3a7</link>
        <description>fix(search): create index lock directories inside data/locksIndex locks were built by concatenating the configured lock directory andthe index name without a path separator.That produced paths like data/lockspage.index instead ofdata/locks/page.index, so index lock directories were created in thedata root rather than inside the configured lock directory.Fix this by joining the lock directory and index name with an explicitslash, and update the lock test to assert the correct location and guardagainst the old broken path.

            List of files:
            /dokuwiki/inc/Search/Index/Lock.php</description>
        <pubDate>Sun, 05 Jul 2026 08:33:47 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>c66b5ec65fd5aa2f1037d2be542b49297f3aac0e - SearchIndex: rewrite Lock as static registry with reference counting</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/Lock.php#c66b5ec65fd5aa2f1037d2be542b49297f3aac0e</link>
        <description>SearchIndex: rewrite Lock as static registry with reference countingReplace the instance-based Lock class with a static registry thattracks held locks per-process with reference counting. This solvesthree problems:- Split indexes (w3, w4, ...) share a single lock name and now  coordinate naturally via the registry- Multiple callers can acquire the same lock without conflict- Indexes enforce their own writability through lock()/unlock()  methods on AbstractIndexThe Lock registry manages both the filesystem lock (mkdir) and thein-process tracking. The first acquire creates the directory, subsequentacquires increment the refcount. Release decrements, and only removesthe directory when the count reaches zero.Note: I am not sure if implementing this as a static object is a greatidea or if we should pass an instance through the collection to theindexes...

            List of files:
            /dokuwiki/inc/Search/Index/Lock.php</description>
        <pubDate>Sun, 05 Apr 2026 17:42:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>596d5287d7a816d606ef4153ef9e0f4704bf8f73 - Working fulltext collection and search</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/Lock.php#596d5287d7a816d606ef4153ef9e0f4704bf8f73</link>
        <description>Working fulltext collection and searchThis finalizes the FulltextCollection and FulltextCollectionSearchclasses. Proper locking is implemented, tests have been enhanced.It should be possible to reimplement the page full text search on top ofit.

            List of files:
            /dokuwiki/inc/Search/Index/Lock.php</description>
        <pubDate>Thu, 11 May 2023 10:55:00 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
