• SolvedFixed
  • "An unexpected error has occurred" Grommunio Web Search

Hallo,
ich habe versucht die Rechte wie oben beschrieben zu setzen, jedoch bekomme ich mit
grommunio-index -v -c -A
folgende Fehlermeldung:
[2024-05-13T21:13:25] grommunio-index /var/lib/gromox/user/1/2 -e ::1 -o /var/lib/grommunio-web/sqlite-index/catchall@***************.***/index.sqlite3
[FATAL] Send failed: Connection refused
... exited with status 2

auch bei dem Kommando
/usr/libexec/gromox/cgkrepair -e catchall@***************.***
bekomme ich die Fehlermeldung:
exmdb_client: protocol error connecting to [::1]:5000//var/lib/gromox/user/
exm: load_hierarchy_table RPC failed
The operation did not complete.

Hat hier evtl. wer eine Idee was ich hier falsch mache?
Vielen Dank

  • Andy replied to this.

    bart versucht die Rechte wie oben beschrieben zu setzen

    Hast Du das so gemacht?

    chown -R groweb:groweb /var/lib/grommunio-web/sqlite-index/
    chmod -R 770 /var/lib/grommunio-web/sqlite-index/
    grommunio-index -v -c -A

    Wenn ja, dann sollte das von daher passen.

    localhost:/var/lib/grommunio-web/sqlite-index # ls -al
    drwxrwx--- 4 groweb groweb 70 Mär 5 23:46 .
    drwxrwx--- 5 groweb groweb 52 Mär 5 23:46 ..
    drwxrwx--- 2 groweb groweb 27 Mär 7 08:45 user1@domain.dl
    drwxrwx--- 2 groweb groweb 27 Mär 7 08:45 user2@domain.dl
    drwxrwx--- 2 groweb groweb 27 Mär 7 08:45 user...n...@domain.dl
    localhost:/var/lib/grommunio-web/sqlite-index #
    • bart replied to this.

      Versuche man gromox-http zu restarten ob das hilft?
      systemctl restart gromox-http

      • bart replied to this.

        Andy
        Hallo Andy,

        ja genau so:

        backup:~# chown -R groweb:groweb /var/lib/grommunio-web/sqlite-index/
        backup:~ # chmod -R 770 /var/lib/grommunio-web/sqlite-index/
        backup:~ # grommunio-index -v -c -A

        [2024-05-14T17:47:55] grommunio-index /var/lib/gromox/user/1/2 -e ::1 -o /var/lib/grommunio-web/sqlite-index/catchall@***************.***/index.sqlite3
        [FATAL] Send failed: Connection refused
        ... exited with status 2
        Leider hat dies nicht geholfen.

        WalterH

        Hallo Walter,

        dies hatte ich auch schon getestet, leider auch ohne Erfolg.
        Das ist der Ausdruck von journalctl:

        backup:~ # journalctl -u gromox-http -n 25
        May 14 18:00:09 backup http[23801]: mysql_adaptor: Current schema n131 is recent.
        May 14 18:00:09 backup http[23801]: timer_agent: timer address is [::1]:6666
        May 14 18:00:18 backup http[23801]: getaddrinfo backup: Temporary failure in name resolution
        May 14 18:00:18 backup http[23801]: exmdb_provider: failed to start bounce producer
        May 14 18:00:18 backup http[23801]: service: init of libgxs_exmdb_provider.so not successful
        May 14 18:00:18 backup http[23801]: system: failed to run services
        May 14 18:00:18 backup systemd[1]: gromox-http.service: Main process exited, code=exited, status=1/FAILURE
        May 14 18:00:18 backup systemd[1]: gromox-http.service: Failed with result 'exit-code'.
        May 14 18:00:18 backup systemd[1]: gromox-http.service: Scheduled restart job, restart counter is at 80.
        May 14 18:00:18 backup systemd[1]: Stopped Gromox HTTP service.
        May 14 18:00:18 backup systemd[1]: Started Gromox HTTP service.
        May 14 18:00:18 backup http[23819]: gromox-http 2.28.1.g256f9d8 (pid 23819 uid 0)
        May 14 18:00:18 backup http[23819]: system: system TLS listening port 10443
        May 14 18:00:18 backup http[23819]: system: maximum file descriptors: 524288
        May 14 18:00:18 backup http[23819]: exmdb_provider: listen address is [::1]:5000
        May 14 18:00:18 backup http[23819]: exmdb_provider: defaulting to implicit access ACL containing ::1.
        May 14 18:00:18 backup http[23819]: Reexecing /usr/libexec/gromox/http
        May 14 18:00:18 backup http[23819]: gromox-http 2.28.1.g256f9d8 (pid 23819 uid 479)
        May 14 18:00:18 backup http[23819]: system: system TLS listening port 10443
        May 14 18:00:18 backup http[23819]: system: maximum file descriptors: 524288
        May 14 18:00:18 backup http[23819]: exmdb_provider: listen address is [::1]:5000
        May 14 18:00:18 backup http[23819]: exmdb_provider: defaulting to implicit access ACL containing ::1.
        May 14 18:00:18 backup http[23819]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
        May 14 18:00:18 backup http[23819]: mysql_adaptor: Current schema n131 is recent.
        May 14 18:00:18 backup http[23819]: timer_agent: timer address is [::1]:6666

        Tabula rasa

        this will reset the web-mail sessions/cache/index but the user-configuration is safe in the exmdb so no worries.

        # just to be sure nothing is getting in the way
        systemctl stop nginx.service gromox-http.service
        # backup to be safe
        cp -a /var/lib/grommunio-web{,.bak}
        # clean up / you can leave out the -i if you are sure :)
        rm -rfi /var/lib/grommunio-web/{session,sqlite-index,tmp}/*
        # run indexer
        systemctl start grommunio-index.service
        systemctl start nginx.service gromox-http.service
        systemctl --failed

        Hi crpd,

        thanks a lot for the hint, unfortunately it didn't worked for me.

        systemctl stop nginx.service gromox-http.service
        backup:~ # rm -rf /var/lib/grommunio-web/{session,sqlite-index,tmp}/*
        backup:~ # systemctl start grommunio-index.service
        Job for grommunio-index.service failed because the control process exited with error code.
        See "systemctl status grommunio-index.service" and "journalctl -xeu grommunio-index.service" for details.
        backup:~ # systemctl start nginx.service gromox-http.service
        backup:~ # systemctl --failed
          UNIT                    LOAD   ACTIVE SUB    DESCRIPTION
        ● grommunio-index.service loaded failed failed Fulltext search index regeneration
        
        LOAD   = Reflects whether the unit definition was properly loaded.
        ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
        SUB    = The low-level unit activation state, values depend on unit type.
        1 loaded units listed.

        Journal list follows:

        backup:~ # journalctl -xeu grommunio-index.service
        ░ An ExecStart= process belonging to unit grommunio-index.service has exited.
        ░░
        ░░ The process' exit code is 'exited' and its exit status is 1.
        May 14 22:02:02 backup systemd[1]: grommunio-index.service: Failed with result 'exit-code'.
        ░░ Subject: Unit failed
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ The unit grommunio-index.service has entered the 'failed' state with result 'exit-code'.
        May 14 22:02:02 backup systemd[1]: Failed to start Fulltext search index regeneration.
        ░░ Subject: A start job for unit grommunio-index.service has failed
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ A start job for unit grommunio-index.service has finished with a failure.
        ░░
        ░░ The job identifier is 3305428 and the job result is failed.
        May 14 22:03:49 backup systemd[1]: Starting Fulltext search index regeneration...
        ░░ Subject: A start job for unit grommunio-index.service has begun execution
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ A start job for unit grommunio-index.service has begun execution.
        ░░
        ░░ The job identifier is 3308117.
        May 14 22:03:49 backup grommunio-index[18149]: [2024-05-14T22:03:49] /usr/bin/grommunio-index /var/lib/gromox/user/1/0 -e ::1 -o /var/lib/grommunio-web/sqlite-index/roland@backup.kroener.email/index.sqlite3
        May 14 22:03:49 backup grommunio-index[18149]: [FATAL] Send failed: Connection refused
        May 14 22:03:49 backup grommunio-index[18149]:         ... exited with status 2
        May 14 22:03:49 backup grommunio-index[18149]: [2024-05-14T22:03:49] /usr/bin/grommunio-index /var/lib/gromox/user/1/1 -e ::1 -o /var/lib/grommunio-web/sqlite-index/sandra@backup.kroener.email/index.sqlite3
        May 14 22:03:49 backup grommunio-index[18149]: [FATAL] Send failed: Connection refused
        May 14 22:03:49 backup grommunio-index[18149]:         ... exited with status 2
        May 14 22:03:49 backup grommunio-index[18149]: [2024-05-14T22:03:49] /usr/bin/grommunio-index /var/lib/gromox/user/0/2 -e ::1 -o /var/lib/grommunio-web/sqlite-index/marianne@backup.kroener.email/index.sqlite3
        May 14 22:03:49 backup grommunio-index[18149]: [FATAL] Send failed: Connection refused
        May 14 22:03:49 backup grommunio-index[18149]:         ... exited with status 2
        May 14 22:03:49 backup grommunio-index[18149]: [2024-05-14T22:03:49] /usr/bin/grommunio-index /var/lib/gromox/user/1/2 -e ::1 -o /var/lib/grommunio-web/sqlite-index/catchall@backup.kroener.email/index.sqlite3
        May 14 22:03:49 backup grommunio-index[18149]: [FATAL] Send failed: Connection refused
        May 14 22:03:49 backup grommunio-index[18149]:         ... exited with status 2
        May 14 22:03:50 backup systemd[1]: grommunio-index.service: Main process exited, code=exited, status=1/FAILURE
        ░░ Subject: Unit process exited
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ An ExecStart= process belonging to unit grommunio-index.service has exited.
        ░░
        ░░ The process' exit code is 'exited' and its exit status is 1.
        May 14 22:03:50 backup systemd[1]: grommunio-index.service: Failed with result 'exit-code'.
        ░░ Subject: Unit failed
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ The unit grommunio-index.service has entered the 'failed' state with result 'exit-code'.
        May 14 22:03:50 backup systemd[1]: Failed to start Fulltext search index regeneration.
        ░░ Subject: A start job for unit grommunio-index.service has failed
        ░░ Defined-By: systemd
        ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
        ░░
        ░░ A start job for unit grommunio-index.service has finished with a failure.
        ░░
        ░░ The job identifier is 3308117 and the job result is failed.
        lines 2573-2631/2631 (END)

        I basically knew that this will follow /o\

        Is everything else working fine on that server?

        Well.. maybe that could help us 🙈

        • grep -vH 'pass' /etc/gromox/{gromox,http,exmdb_provider}.cfg

        • ss -ltpn |cat

        • systemctl restart 'grom*' 'nginx' 'postfix' 'maria*'

        • journcalctl --unit='gromox*' --since -5min

        Hi crpd,

        the admin Dashboard shows no abnormal. I can not login to the user panel, here I get the error "cannot connect to Gromox".

        Here the output of the commands:

        backup:~ # grep -vH 'pass' /etc/gromox/{gromox,http,exmdb_provider}.cfg
        grep: /etc/gromox/gromox.cfg: No such file or directory
        /etc/gromox/http.cfg:listen_port=10080
        /etc/gromox/http.cfg:http_support_ssl=true
        /etc/gromox/http.cfg:listen_ssl_port=10443
        /etc/gromox/http.cfg:host_id=backup.*******.***
        /etc/gromox/http.cfg:http_certificate_path=/etc/grommunio-common/ssl/server-bundle.pem
        /etc/gromox/http.cfg:http_private_key_path=/etc/grommunio-common/ssl/server.key
        /etc/gromox/http.cfg:default_domain=backup.*******.***
        /etc/gromox/exmdb_provider.cfg:x500_org_name=i63413df7
        backup:~ # ss -ltpn | cat
        State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess
        LISTEN 0      128          0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=1427,fd=3))
        LISTEN 0      100          0.0.0.0:25         0.0.0.0:*    users:(("master",pid=1742,fd=13))
        LISTEN 0      512          0.0.0.0:443        0.0.0.0:*    users:(("nginx",pid=18199,fd=32),("nginx",pid=18198,fd=32))
        LISTEN 0      512          0.0.0.0:8443       0.0.0.0:*    users:(("nginx",pid=18199,fd=27),("nginx",pid=18198,fd=27))
        LISTEN 0      80         127.0.0.1:3306       0.0.0.0:*    users:(("mysqld",pid=1431,fd=33))
        LISTEN 0      100          0.0.0.0:587        0.0.0.0:*    users:(("master",pid=1742,fd=90))
        LISTEN 0      511        127.0.0.1:6379       0.0.0.0:*    users:(("redis-server",pid=1405,fd=6))
        LISTEN 0      512          0.0.0.0:80         0.0.0.0:*    users:(("nginx",pid=18199,fd=29),("nginx",pid=18198,fd=29))
        LISTEN 0      512          0.0.0.0:8080       0.0.0.0:*    users:(("nginx",pid=18199,fd=25),("nginx",pid=18198,fd=25))
        LISTEN 0      512            [::1]:5555          [::]:*    users:(("midb",pid=1497,fd=4))
        LISTEN 0      512            [::1]:33333         [::]:*    users:(("event",pid=685,fd=3))
        LISTEN 0      128             [::]:22            [::]:*    users:(("sshd",pid=1427,fd=4))
        LISTEN 0      512                *:24               *:*    users:(("delivery-queue",pid=1493,fd=4))
        LISTEN 0      100             [::]:25            [::]:*    users:(("master",pid=1742,fd=14))
        LISTEN 0      512             [::]:443           [::]:*    users:(("nginx",pid=18199,fd=31),("nginx",pid=18198,fd=31))
        LISTEN 0      512             [::]:8443          [::]:*    users:(("nginx",pid=18199,fd=28),("nginx",pid=18198,fd=28))
        LISTEN 0      512                *:10080            *:*    users:(("http",pid=7529,fd=4))
        LISTEN 0      512                *:993              *:*    users:(("imap",pid=1496,fd=4))
        LISTEN 0      512                *:995              *:*    users:(("pop3",pid=1498,fd=4))
        LISTEN 0      512            [::1]:11332         [::]:*    users:(("rspamd",pid=8640,fd=8),("rspamd",pid=1402,fd=8))
        LISTEN 0      512            [::1]:11333         [::]:*    users:(("rspamd",pid=8651,fd=13),("rspamd",pid=8649,fd=13),("rspamd",pid=8646,fd=13),("rspamd",pid=8644,fd=13),("rspamd",pid=1402,fd=13))
        LISTEN 0      512            [::1]:11334         [::]:*    users:(("rspamd",pid=8642,fd=10),("rspamd",pid=1402,fd=10))
        LISTEN 0      512            [::1]:5000          [::]:*    users:(("http",pid=7529,fd=6))
        LISTEN 0      512            [::1]:6666          [::]:*    users:(("timer",pid=686,fd=3))
        LISTEN 0      512                *:10443            *:*    users:(("http",pid=7529,fd=5))
        LISTEN 0      100             [::]:587           [::]:*    users:(("master",pid=1742,fd=91))
        LISTEN 0      512                *:110              *:*    users:(("pop3",pid=1498,fd=3))
        LISTEN 0      512                *:143              *:*    users:(("imap",pid=1496,fd=3))
        LISTEN 0      512             [::]:80            [::]:*    users:(("nginx",pid=18199,fd=30),("nginx",pid=18198,fd=30))
        LISTEN 0      512             [::]:8080          [::]:*    users:(("nginx",pid=18199,fd=26),("nginx",pid=18198,fd=26))
        
        backup:~ # systemctl restart 'grom*' 'nginx' 'postfix' 'maria*'
        Job for grommunio-index.service failed because the control process exited with error code.
        See "systemctl status grommunio-index.service" and "journalctl -xeu grommunio-index.service" for details.
        
         journalctl --unit='gromox*' --since -5min
        May 15 06:14:36 backup zcore[7072]: getaddrinfo backup: Temporary failure in name resolution
        May 15 06:14:36 backup zcore[7072]: system: failed to start bounce producer
        May 15 06:14:36 backup delivery[7071]: getaddrinfo backup: Temporary failure in name resolution
        May 15 06:14:36 backup delivery[7071]: mlist_expand: failed to run bounce producer
        May 15 06:14:36 backup delivery[7071]: transporter: error executing the plugin's init function in libgxm_alias_resolve.so
        May 15 06:14:36 backup delivery[7071]: system: failed to start transporter
        May 15 06:14:36 backup systemd[1]: gromox-delivery.service: Main process exited, code=exited, status=1/FAILURE
        May 15 06:14:36 backup systemd[1]: gromox-delivery.service: Failed with result 'exit-code'.
        May 15 06:14:36 backup systemd[1]: gromox-zcore.service: Main process exited, code=exited, status=1/FAILURE
        May 15 06:14:36 backup systemd[1]: gromox-zcore.service: Failed with result 'exit-code'.
        May 15 06:14:36 backup systemd[1]: gromox-delivery.service: Scheduled restart job, restart counter is at 13582.
        May 15 06:14:36 backup systemd[1]: gromox-zcore.service: Scheduled restart job, restart counter is at 13572.
        May 15 06:14:36 backup systemd[1]: Stopped Gromox mail spooler.
        May 15 06:14:36 backup systemd[1]: Started Gromox mail spooler.
        May 15 06:14:36 backup systemd[1]: Stopped Gromox zcore service.
        May 15 06:14:36 backup systemd[1]: Started Gromox zcore service.
        May 15 06:14:36 backup delivery[7087]: gromox-delivery 2.28.1.g256f9d8 (pid 7087 uid 0)
        May 15 06:14:36 backup delivery[7087]: system: host ID is "backup"
        May 15 06:14:36 backup delivery[7087]: delivery: remote_delivery SMTP server is smtp://[::1]:25
        May 15 06:14:36 backup delivery[7087]: system: maximum file descriptors: 524288
        May 15 06:14:36 backup delivery[7087]: Reexecing /usr/libexec/gromox/delivery
        May 15 06:14:36 backup zcore[7088]: gromox-zcore 2.28.1.g256f9d8 (pid 7088 uid 0)
        May 15 06:14:36 backup zcore[7088]: system: maximum file descriptors: 524288
        May 15 06:14:36 backup zcore[7088]: system: SMTP server is smtp://[::1]:25
        May 15 06:14:36 backup zcore[7088]: Reexecing /usr/libexec/gromox/zcore
        May 15 06:14:36 backup delivery[7087]: gromox-delivery 2.28.1.g256f9d8 (pid 7087 uid 479)
        May 15 06:14:36 backup delivery[7087]: system: host ID is "backup"
        May 15 06:14:36 backup delivery[7087]: delivery: remote_delivery SMTP server is smtp://[::1]:25
        May 15 06:14:36 backup delivery[7087]: system: maximum file descriptors: 524288
        May 15 06:14:36 backup delivery[7087]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
        May 15 06:14:36 backup zcore[7088]: gromox-zcore 2.28.1.g256f9d8 (pid 7088 uid 479)
        May 15 06:14:36 backup zcore[7088]: system: maximum file descriptors: 524288
        May 15 06:14:36 backup zcore[7088]: system: SMTP server is smtp://[::1]:25
        May 15 06:14:36 backup delivery[7087]: mysql_adaptor: Current schema n131 is recent.
        May 15 06:14:36 backup zcore[7088]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
        May 15 06:14:36 backup zcore[7088]: mysql_adaptor: Current schema n131 is recent.
        May 15 06:14:36 backup zcore[7088]: timer_agent: timer address is [::1]:6666
        May 15 06:14:39 backup http[7080]: getaddrinfo backup: Temporary failure in name resolution
        May 15 06:14:39 backup http[7080]: exmdb_provider: failed to start bounce producer
        May 15 06:14:39 backup http[7080]: service: init of libgxs_exmdb_provider.so not successful
        May 15 06:14:39 backup http[7080]: system: failed to run services
        May 15 06:14:39 backup systemd[1]: gromox-http.service: Main process exited, code=exited, status=1/FAILURE
        May 15 06:14:39 backup systemd[1]: gromox-http.service: Failed with result 'exit-code'.
        May 15 06:14:39 backup systemd[1]: gromox-http.service: Scheduled restart job, restart counter is at 3295.
        May 15 06:14:39 backup systemd[1]: Stopped Gromox HTTP service.
        May 15 06:14:39 backup systemd[1]: Started Gromox HTTP service.
        May 15 06:14:39 backup http[7095]: gromox-http 2.28.1.g256f9d8 (pid 7095 uid 0)
        May 15 06:14:39 backup http[7095]: system: system TLS listening port 10443
        May 15 06:14:39 backup http[7095]: system: maximum file descriptors: 524288
        May 15 06:14:39 backup http[7095]: exmdb_provider: listen address is [::1]:5000
        May 15 06:14:39 backup http[7095]: exmdb_provider: defaulting to implicit access ACL containing ::1.
        May 15 06:14:39 backup http[7095]: Reexecing /usr/libexec/gromox/http
        May 15 06:14:39 backup http[7095]: gromox-http 2.28.1.g256f9d8 (pid 7095 uid 479)
        May 15 06:14:39 backup http[7095]: system: system TLS listening port 10443
        May 15 06:14:39 backup http[7095]: system: maximum file descriptors: 524288
        May 15 06:14:39 backup http[7095]: exmdb_provider: listen address is [::1]:5000
        May 15 06:14:39 backup http[7095]: exmdb_provider: defaulting to implicit access ACL containing ::1.
        May 15 06:14:39 backup http[7095]: ldap_adaptor: default host <ldapi:///>, base <>, #conn=8, mailattr=mail
        May 15 06:14:39 backup http[7095]: mysql_adaptor: Current schema n131 is recent.

        Thanks a lot for the help.

        Morning :-).

        So as i thought you changed something.

        /etc/gromox/http.cfg:listen_port=10080
        LISTEN 0 512 *:10080 *:* users:(("http",pid=7529,fd=4))

        And grommunio-index want's to talk to port 5000.

        For now just try the following

        grommunio-index --all --recheck --port 10080 --verbose

        a few more options can't hurt

        • crpb replied to this.

          crpb

          Uh wait... have to drink coffee first.

          No, there is something listening on port "5000". Now i'm confused..

          13 days later

          I tried the example above:

          `
          chown -R groweb:groweb /var/lib/grommunio-web/sqlite-index/
          chmod -R 770 /var/lib/grommunio-web/sqlite-index/
          grommunio-index -v -c -A

          Output looks good, no errors...

          [2024-05-28T11:28:45] grommunio-index /var/lib/gromox/user/3/4 -e ::1 -o /var/lib/grommunio-web/sqlite-index/rick@xxxxxxxx.org/index.sqlite3
          [STATUS] Updating existing index /var/lib/grommunio-web/sqlite-index/rick@xxxxxxxx.org/index.sqlite3
          [STATUS] Checking for updates...
          [INFO] Need to update 0 messages and 25 hierarchy entries.
          [STATUS] Updating index...
          [STATUS] Index updated.
          `

          I use Samsung Email client on my mobile, the search function works as expected.

          Using the WebUI, I cannot search email and calendars, I only get "An unexpected error has occurred"

          Do the http logs show any errors? tail /var/log/nginx/*.log -f
          Any errors in journalctl -f ?

          10 days later

          Ich kann den Fehler bei mir nun auch reproduzieren :---).
          Mehr gibts noch nicht..

          Hmm.. so i can still break my outlook by doing silly searches for 5+ mails but my grommunio-index is healty again even thou i had a short nasty error which at first looked like hell broke loos.. 😱 .

          © 2020-2024 grommunio GmbH. All rights reserved. | https://grommunio.com | Data Protection | Legal notice