On Fri, Sep 23, 2016 at 09:18:54PM +0100, Edd Barrett wrote:
> Hi,
> 
> I've not yet gotten round to deploying rspamd on my mail server, because
> I was experiencing a some crashes. I gave upstream the traces, and he
> made fixes.
> 
> This diff fixes two crashes and also scaffolds the /var/run/rspamd
> directory, which is needed, but I guess we had all made manually at some
> point. On my VPS I got:
> 
> 2016-09-16 15:19:52 #9118(main) <993676>; main; main: cannot write pid file 
> /var/run/rspamd/rspamd.pid
> 
> OK?
> 
> P.S.
> 
> I notice that performance of learning spam with the sqlite backend is
> pretty poor (can take over a minute to learn a message if you leave it
> learning a corpus long enough -- during which the hard disk LED is
> pegged on). Upstream speculates that fsync() may be expensive on
> OpenBSD, which sqlite apparently uses liberally(?) Anyone know anything
> about that?
> 
> I guess I'll try the redis backend...
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /home/edd/cvsync/ports/mail/rspamd/Makefile,v
> retrieving revision 1.21
> diff -u -p -r1.21 Makefile
> --- Makefile  12 Sep 2016 09:48:37 -0000      1.21
> +++ Makefile  16 Sep 2016 14:26:33 -0000
> @@ -3,6 +3,7 @@
>  COMMENT=     event-driven spam filtering system in C/Lua
>  
>  DISTNAME =   rspamd-1.3.5
> +REVISION =   0
>  EXTRACT_SUFX=        .tar.xz
>  
>  CATEGORIES=  mail
> Index: patches/patch-src_libserver_html_c
> ===================================================================
> RCS file: patches/patch-src_libserver_html_c
> diff -N patches/patch-src_libserver_html_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_libserver_html_c        23 Sep 2016 16:52:58 -0000
> @@ -0,0 +1,35 @@
> +$OpenBSD$
> +
> +Fix crash due to memcpy on overlapping memory regions.
> +
> +https://github.com/vstakhov/rspamd/commit/9ac183e4ae31c1a5637dc371fbfff53a9adb2531
> +
> +--- src/libserver/html.c.orig        Thu Aug 25 13:14:57 2016
> ++++ src/libserver/html.c     Tue Sep 20 14:41:03 2016
> +@@ -691,7 +691,7 @@ rspamd_html_decode_entitles_inplace (gchar *s, guint l
> +                                             t += rep_len;
> +                                     }
> +                                     else {
> +-                                            memcpy (t, e, h - e);
> ++                                            memmove (t, e, h - e);
> +                                             t += h - e;
> +                                     }
> +                             }
> +@@ -713,7 +713,7 @@ rspamd_html_decode_entitles_inplace (gchar *s, guint l
> +                                     }
> +                                     if (end_ptr != NULL && *end_ptr != 
> '\0') {
> +                                             /* Skip undecoded */
> +-                                            memcpy (t, e, h - e);
> ++                                            memmove (t, e, h - e);
> +                                             t += h - e;
> +                                     }
> +                                     else {
> +@@ -736,7 +736,7 @@ rspamd_html_decode_entitles_inplace (gchar *s, guint l
> +                                                             t += 
> g_unichar_to_utf8 (val, t);
> +                                                     }
> +                                                     else {
> +-                                                            memcpy (t, e, h 
> - e);
> ++                                                            memmove (t, e, 
> h - e);
> +                                                             t += h - e;
> +                                                     }
> +                                             }
> Index: patches/patch-src_libserver_url_c
> ===================================================================
> RCS file: patches/patch-src_libserver_url_c
> diff -N patches/patch-src_libserver_url_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_libserver_url_c 23 Sep 2016 16:52:58 -0000
> @@ -0,0 +1,23 @@
> +$OpenBSD$
> +
> +Fix crash in url_email_start().
> +
> +https://github.com/vstakhov/rspamd/commit/1b33ef8ab63be63ba712a456c846fe427c347d37
> +
> +--- src/libserver/url.c.orig Thu Aug 25 13:14:57 2016
> ++++ src/libserver/url.c      Fri Sep 23 14:01:32 2016
> +@@ -1925,9 +1925,13 @@ url_email_start (struct url_callback_data *cb,
> +                     cb->last_at = NULL;
> +                     return FALSE;
> +             }
> ++            else if (pos == cb->begin) {
> ++                    /* Just @ at the start of input */
> ++                    return FALSE;
> ++            }
> +     }
> + 
> +-    if (pos > cb->begin - 1) {
> ++    if (pos >= cb->begin + 1) {
> +             match->st = *(pos - 1);
> +     }
> +     else {
> Index: pkg/PLIST
> ===================================================================
> RCS file: /home/edd/cvsync/ports/mail/rspamd/pkg/PLIST,v
> retrieving revision 1.7
> diff -u -p -r1.7 PLIST
> --- pkg/PLIST 12 Sep 2016 09:48:37 -0000      1.7
> +++ pkg/PLIST 16 Sep 2016 14:26:18 -0000
> @@ -156,6 +156,7 @@ share/rspamd/www/react-index.html
>  @owner _rspamd
>  @group _rspamd
>  @sample ${LOCALSTATEDIR}/rspamd/
> +@sample ${LOCALSTATEDIR}/run/rspamd/

That part is useless:
- it will be removed at boot
- the rc.d script already takes care of creating that dir




-- 
Antoine

Reply via email to