DragonFlyBSD bugtracker: Issueshttps://bugs.dragonflybsd.org/https://bugs.dragonflybsd.org/favicon.ico?16293952082023-08-23T03:03:33ZDragonFlyBSD bugtracker
Redmine DragonFlyBSD - Submit #3355 (New): [PATCH] Port ext4 extents support from FreeBSDhttps://bugs.dragonflybsd.org/issues/33552023-08-23T03:03:33ZphcoderDragonFlyBSD - Submit #3312 (New): hammer2: redundant chain modify after chain creationhttps://bugs.dragonflybsd.org/issues/33122022-02-04T20:08:01Ztkusumikusumi.tomohiro@gmail.com
<p>It looks to me hammer2_chain_modify() calls right after hammer2_chain_create() in creat/mkdir/etc syscalls are all redundant.</p>
<p>Take a look at hammer2_xop_inode_create_det() for example. A caller process always passes NULL chain to hammer2_chain_create(), so it always allocates a new chain and then calls hammer2_chain_modify() which only initializes a new buf for devvp.</p>
<p>After successful hammer2_chain_create(), a caller explicitly calls hammer2_chain_modify() for the second time. The chain is already modified + has non-zero data_off, so it breads data for buf from above (which I believe contains garbage at this point).</p>
<p>After that a caller copies ondisk inode to its chain data which is a pointer to somewhere in devvp's buf data. The flusher eventually recursively flushes chain data to devvp along with flushing vp's buf data (user data) to devvp.</p>
<p>What I don't understand is why the second hammer2_chain_modify() is needed. The first one called from hammer2_chain_create() seems good enough in these cases.</p>
<p>In fact I've had no issue with this diff to test above.<br /><a class="external" href="https://leaf.dragonflybsd.org/~tkusumi/diff/0001-hammer2-omit-redundant-chain-modify-after-creation.patch">https://leaf.dragonflybsd.org/~tkusumi/diff/0001-hammer2-omit-redundant-chain-modify-after-creation.patch</a></p> DragonFlyBSD - Submit #3206 (In Progress): update psm/kbd to FreeBSD 12.0 codehttps://bugs.dragonflybsd.org/issues/32062019-09-19T19:21:35Zhtseharald.brinkhof@gmail.com
<p>updates code to this FreeBSD commit</p>
<p>commit 11b574d82f92a010ea507fe962cec39e38954c3a<br />Author: philip <<a class="email" href="mailto:philip@FreeBSD.org">philip@FreeBSD.org</a>><br />Date: Sun Jun 16 03:06:05 2019 +0000</p>
<pre><code>Add macOS-like three finger drag trackpad gesture to psm(4)</code></pre>
<p>Adds three-fingered drag, natural scrolling, a bunch of bugfixes, 4-5 finger support, ...</p> DragonFlyBSD - Submit #3201 (In Progress): Fixes make search displayhttps://bugs.dragonflybsd.org/issues/32012019-08-18T00:28:51Zhtseharald.brinkhof@gmail.com
<p>when doing /usr/dports/Makefile's 'make search'</p>
<p>the result is incorrectly displayed:<br /><pre>
B-deps is empty
R-deps is empty
WWW is empty
</pre></p>
<p>current:<br />--------<br /><pre>
Port: py27-wxPython30-3.0.2.0_7
Path: /usr/dports/x11-toolkits/py-wxPython30
Info: GUI toolkit for the Python programming language
Maint: python@FreeBSD.org
B-deps:
R-deps:
WWW:
</pre></p>
<p>corrections are done in Mk/bsd.port.subdir.mk, function changed starts at line 380:<br />fixed a typo and corrected the offsets</p>
<p>result:<br />-------<br /><pre>
Port: py27-wxPython30-3.0.2.0_7
Path: /usr/dports/x11-toolkits/py-wxPython30
Info: GUI toolkit for the Python programming language
Maint: python@FreeBSD.org
B-deps: /usr/dports/devel/gettext-runtime /usr/dports/devel/gettext-tools /usr/dports/devel/pkgconf /usr/dports/devel/py-setuptools /usr/dports/lang/python27 /usr/dports/x11-toolkits/wxgtk30
R-deps: /usr/dports/devel/gettext-runtime /usr/dports/devel/py-setuptools /usr/dports/lang/python27 /usr/dports/x11-toolkits/py-wxPython-common /usr/dports/x11-toolkits/wxgtk30
WWW: http://www.wxpython.org
</pre></p>
<p>which is the desired info-display</p> DragonFlyBSD - Submit #3142 (Feedback): lib/libdmsg: Unbreak using new API EVP_CIPHER_CTX_new()https://bugs.dragonflybsd.org/issues/31422018-07-08T11:18:33Ztkusumikusumi.tomohiro@gmail.com
<p><a class="external" href="https://github.com/kusumi/DragonFlyBSD/commit/e6833c80bc898c2674e180828fe62cd0b53226e7">https://github.com/kusumi/DragonFlyBSD/commit/e6833c80bc898c2674e180828fe62cd0b53226e7</a></p>
<p>--<br />The upstream OpenSSL no longer publicly expose definition of<br />EVP_CIPHER_CTX (struct evp_cipher_ctx_st).</p>
<p>Due to this change clients need to have it as a pointer instead<br />of as a value, and allocate or free EVP_CIPHER_CTX instance by<br />EVP_CIPHER_CTX_new()/EVP_CIPHER_CTX_free().</p>
<blockquote>
<p><a class="external" href="https://github.com/openssl/openssl/issues/962#issuecomment-208792020">https://github.com/openssl/openssl/issues/962#issuecomment-208792020</a></p>
</blockquote> DragonFlyBSD - Submit #3135 (New): Add EVFILT_RECV and EVFILT_SENDhttps://bugs.dragonflybsd.org/issues/31352018-05-26T04:59:15Ztautolog
<p>This isn't complete yet, as I need to add entries in the manual, and I would like to add some more filtering code for listen sockets, and some other types of files. But I wanted to show this theory, and get feedback.</p>
<p>I spend a lot of time trying to optimize network event loops. What I end up doing is writing code that speculates on the state of the socket buffers. Level-triggering works okay for reading for some time, but if the protocol handler gets blocked, it needs to deregister or get itself into an event spin, so there ends up being a lot of de-registering and re-registering in a sophisticated platform. So then EV_ONESHOT can be used, or EV_DISPATCH with EV_ENABLE, which basically gives you edge-triggering, but then you need to register all the time. Luckily, kqueue allows you to batch these registrations, so the overhead isn't so bad, but it requires adding codepaths that aren't required in linux. So, I came up with something that I think is even better, after looking at how to add edge-triggering into kqueue.</p>
<p>kqueue has the data field that reports the socket availability in bytes. The issue with level-triggering is that the userland side only needs to be made aware of changes to that state. I realized that a more optimal interface would be for the userland to register once for each side of the connection, and then the kernel gives a single update per change to any of the socket state. Then the application can merely store the latest kevent struct on its connection struct, and always have the latest information that the kernel has on the state of the socket buffers. Then, sophisticated optimizations become straightforward. See the example echo network server in kqsbtest.c.</p> DragonFlyBSD - Submit #2933 (New): Remove unix domain socket support from cat(1)https://bugs.dragonflybsd.org/issues/29332016-08-02T01:09:06Zsevanventure37@geeklan.co.uk
<p>Introduced in FreeBSD<sup><a href="#fn1">1</a></sup> and inherited in DragonFly BSD, cat(1) has the ability to utilise a unix domain socket but the usecase is somewhat limited & better served by other tools eg netcat. Attached diff removes the functionality & restores previous behaviour. This feature is exclusive to FreeBSD & DragonFly BSD and has not been adopted by the other BSDs.</p>
<p>[1] <a class="external" href="https://svnweb.freebsd.org/base/head/bin/cat/cat.c?r1=78732&r2=83482&view=patch">https://svnweb.freebsd.org/base/head/bin/cat/cat.c?r1=78732&r2=83482&view=patch</a></p> DragonFlyBSD - Submit #2921 (New): Allow moused to accept userland mouse eventshttps://bugs.dragonflybsd.org/issues/29212016-06-10T21:38:01Ztautolog
<p>Allow moused to work with sysmouse when the port is a pipe,<br /> not a real mouse device with working ioctls. Allows simple userland injection<br /> of mouse events.</p>
<p>Attached is an example that works with the Griffin PowerMate<br /><a class="external" href="https://www.amazon.com/Griffin-Technology-NA16029-Multimedia-Controller/dp/B003VWU2WA/">https://www.amazon.com/Griffin-Technology-NA16029-Multimedia-Controller/dp/B003VWU2WA/</a></p>
<p>Just run `./scrollwheel.py scroller.fifo` as a user account, and then run `moused -p scroller.fifo -t sysmouse` as root.</p>
<p>If you press down the wheel, it will multiply scrolls by 32, so you can fly through code like in the movies.</p> DragonFlyBSD - Submit #2721 (Feedback): Some few zalloc calls to objcache ones replacementshttps://bugs.dragonflybsd.org/issues/27212014-08-30T17:12:51Zdclinkdevnexen@gmail.comDragonFlyBSD - Submit #2717 (Feedback): Out of range numeric handlinghttps://bugs.dragonflybsd.org/issues/27172014-08-22T12:36:50Zdclinkdevnexen@gmail.com
<p>In a similar way than OpenBSD, the numeric values overflows are checked.</p> DragonFlyBSD - Submit #2438 (Feedback): TRIM fixeshttps://bugs.dragonflybsd.org/issues/24382012-10-22T04:59:20ZAnonymous
<p>This patch is to fix bugs associated with TRIM.</p>
<p>If trim is on as a option, display that when typing "mount".</p>
<p>Change post-trim ffs_blkfree_cg() to use taskqueue_swi_mp and get mp token when modifying freemap.</p>
<p>Make sure TRIM works with softdep. Stash a copy of that vnode's mount point in the ufs inode so that if we are using softdep, we can get access to the mount point through the faked up inode (created in freeblocks). The original mount point path (ip->i_devvp->v_mount->mnt_flag) doesn't have the mount point options.</p>
<p>Tim</p> DragonFlyBSD - Submit #2098 (New): [PATCH] correct ath man page example (/usr/src/share/man/man4/...https://bugs.dragonflybsd.org/issues/20982011-06-29T04:12:50Znobody
<p>152c152<br />< wepmode on wepkey 0x8736639624 weptxkey 1 up<br />---<br /> > wepmode on wepkey 0x8736639624</p> DragonFlyBSD - Submit #1700 (In Progress): skip boot2 menu on <enter>https://bugs.dragonflybsd.org/issues/17002010-03-22T00:07:18ZJohannes.Hofmann
<p>Hi,</p>
<p>tuxillo noticed that the trick to speedup booting by hitting <enter><br />does not work with default UFS-based installations, as those have no<br />separate /boot partition, and therefore the default location for the<br />loader is wrong (it had been changed to match default HAMMER<br />installations in <a class="changeset" title="boot - Switch boot2 loader path around * Test /loader first, then /boot/loader, makes hitting en..." href="https://bugs.dragonflybsd.org/projects/dragonfly/repository/dragonflybsd/revisions/3735e368a1bdbe773c79c34512f49c905ff77bd7">3735e368a1bdbe773c79c34512f49c905ff77bd7</a>)</p>
<p>We could change boot2 to just continue it's normal operation without<br />entering the prompt when the user hits <enter>. That way one can avoid<br />the delay on UFS and HAMMER systems:</p>
<pre>
<code class="ruby syntaxhl" data-language="ruby"><span class="n">diff</span> <span class="o">--</span><span class="n">git</span> <span class="n">a</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">pc32</span><span class="o">/</span><span class="n">boot2</span><span class="o">/</span><span class="n">boot2</span><span class="p">.</span><span class="nf">c</span> <span class="n">b</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">pc32</span><span class="o">/</span><span class="n">boot2</span><span class="o">/</span><span class="n">boot2</span><span class="p">.</span><span class="nf">c</span>
<span class="n">index</span> <span class="mi">459436</span><span class="n">f</span><span class="o">..</span><span class="mi">55516</span><span class="n">be</span> <span class="mi">100644</span>
<span class="o">---</span> <span class="n">a</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">pc32</span><span class="o">/</span><span class="n">boot2</span><span class="o">/</span><span class="n">boot2</span><span class="p">.</span><span class="nf">c</span>
<span class="o">+++</span> <span class="n">b</span><span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">boot</span><span class="o">/</span><span class="n">pc32</span><span class="o">/</span><span class="n">boot2</span><span class="o">/</span><span class="n">boot2</span><span class="p">.</span><span class="nf">c</span>
<span class="err">@@</span> <span class="o">-</span><span class="mi">346</span><span class="p">,</span><span class="mi">7</span> <span class="o">+</span><span class="mi">346</span><span class="p">,</span><span class="mi">7</span> <span class="err">@@</span> <span class="n">main</span><span class="p">(</span><span class="n">void</span><span class="p">)</span>
<span class="o">*</span><span class="sr">/
if (autoboot && !*kname) {
memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3));
- if (!keyhit(3*SECOND)) {
+ if (!keyhit(3*SECOND) || xgetc(0) == '\r') {
load();
memcpy(kname, PATH_BOOT3_ALT, sizeof(PATH_BOOT3_ALT));
load();
</span></code><br /></pre>
<p>To actually enter the prompt one has to hit any other key (e.g. Esc).</p>
<p>The check for '\r' works ok for me, but maybe we also need to check<br />for '\n'?</p>
<p>Cheers,<br />Johannes</p> DragonFlyBSD - Submit #1398 (In Progress): hdestroy(3) restricts hash key to point to malloc'ed s...https://bugs.dragonflybsd.org/issues/13982009-06-11T02:08:49ZAnonymous
<p>Salute.</p>
<p>hdestroy(3) frees the memory pointed to by the hash key. In other words it expects the user to always have malloc()'ed rather than used static allocation for the hash key. This doesn't apply to the data associated with the key.</p>
<p>Although POSIX standard doesn't say much on this particular topic:</p>
<ol>
<li>This is unnecessarily restrictive. If the user wants static allocation, we should allow this. If she wants dynamic then let <strong>her</strong> free the memory she malloc()'ed.</li>
<li>It is in conflict with the example code in the POSIX page. The code segfaults if you add an hdestroy() call in the end of it.</li>
<li>Programs that target other implementations may segfault in DragonFly (that'show I discovered it). AFAIK sunOS 5.10 and a recent glibc work fine, whereas {Net, Free, DragonFly}BSD all are affected because they share the same code. (One could argue that all programs written with the *BSD version in mind would<br />result in a memory leak. But still I think these programs (if any) should be fixed.)</li>
</ol>
<p>Any thoughts ?</p>
<p>Cheers,<br />Stathis</p> DragonFlyBSD - Submit #1192 (New): KKASSERTs in sys/kern/uipc_{msg,socket}.c are too stricthttps://bugs.dragonflybsd.org/issues/11922008-12-30T06:05:00Zrumcic
<p>The code for nfs root mounts does not use kmalloc-ed space for some vars, while<br />some KKASSERTs in the mentioned files only check for the supplied pointers if<br />they were kmalloc-ed or not.<br />The attached patch adds a check if the supplied pointers are not in user stack<br />(if they are in kernel stack) ... since kmalloc-ed space also resides in the<br />addresses not in user stack, maybe kva_p should be removed (is it used<br />anywhere else?)?<br />-- <br />Regards,<br />Rumko</p>