gohugoio / hugo

The world’s fastest framework for building websites.
https://gohugo.io
Apache License 2.0
75.2k stars 7.48k forks source link

Error: Error building site: "": [BUG] goldmark: runtime error: index out of range [0] with length 0 #6588

Closed hucste closed 4 years ago

hucste commented 4 years ago

What version of Hugo are you using (hugo version)?

$ hugo version
Hugo Static Site Generator v0.60.1-96066756 openbsd/amd64 BuildDate: 2019-11-29T14:58:39Z

Does this issue reproduce with the latest release?

Normally, I use the actual package version on OpenBSD: Hugo Static Site Generator v0.53 openbsd/amd64 BuildDate: unknown


To night, I search to use your pre-built Hugo binary for OpenBSD amd64 on OpenBSD 6.6 (actual stable). When I execute it, I have this error:

$ hugo server -D
Building sites … WARN 2019/12/08 23:49:42 Page.URL is deprecated and will be removed in a future release. Use .Permalink or .RelPermalink. If what you want is the front matter URL value, use .Params.url
goroutine 125 [running]:
runtime/debug.Stack(0x1e876a0, 0x2b32360, 0xc001582500)
    /usr/local/go/src/runtime/debug/stack.go:24 +0x9d
github.com/gohugoio/hugo/markup/goldmark.(*goldmarkConverter).Convert.func1(0xc000678780, 0xc001a73000, 0x27cd, 0x3000, 0xc001f69b01, 0xc001f69bd8)
    /root/project/hugo/markup/goldmark/convert.go:162 +0x203
panic(0x197e140, 0xc000a3c0e0)
    /usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/yuin/goldmark/parser.parseAttribute(0x1e96bc0, 0xc001a4afc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1867d00)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/attribute.go:100 +0x5f7
github.com/yuin/goldmark/parser.ParseAttributes(0x1e96bc0, 0xc001a4afc0, 0x1f, 0x20, 0x0, 0x20)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/attribute.go:59 +0x153
github.com/yuin/goldmark/parser.parseLastLineAttributes(0x1eace60, 0xc001a5b4d0, 0x1e96bc0, 0xc001a4aa10, 0x1e97100, 0xc001a4a9a0)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/atx_heading.go:229 +0x2b4
github.com/yuin/goldmark/parser.(*atxHeadingParser).Close(0xc00076491a, 0x1eace60, 0xc001a5b4d0, 0x1e96bc0, 0xc001a4aa10, 0x1e97100, 0xc001a4a9a0)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/atx_heading.go:169 +0x139
github.com/yuin/goldmark/parser.(*parser).closeBlocks(0xc00077e000, 0x0, 0x0, 0x1e96bc0, 0xc001a4aa10, 0x1e97100, 0xc001a4a9a0)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/parser.go:845 +0x162
github.com/yuin/goldmark/parser.(*parser).parseBlocks(0xc00077e000, 0x1eac9e0, 0xc001a3d180, 0x1e96bc0, 0xc001a4aa10, 0x1e97100, 0xc001a4a9a0)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/parser.go:1058 +0x753
github.com/yuin/goldmark/parser.(*parser).Parse(0xc00077e000, 0x1e96bc0, 0xc001a4aa10, 0xc001f01c10, 0x1, 0x1, 0x46d, 0x0)
    /go/pkg/mod/github.com/yuin/goldmark@v1.1.8/parser/parser.go:818 +0x148
github.com/gohugoio/hugo/markup/goldmark.(*goldmarkConverter).Convert(0xc000678780, 0xc001a73000, 0x27cd, 0x3000, 0x1, 0x1e40060, 0xc001c6d770, 0x0, 0x0)
    /root/project/hugo/markup/goldmark/convert.go:174 +0x393
github.com/gohugoio/hugo/hugolib.(*pageContentOutput).renderContent(0xc00103a700, 0xc001a73000, 0x27cd, 0x3000, 0xc000a959a0, 0xc000f6cf80, 0x0, 0x1e50b60)
    /root/project/hugo/hugolib/page__per_output.go:335 +0x74
github.com/gohugoio/hugo/hugolib.newPageContentOutput.func1.1(0x0, 0x0)
    /root/project/hugo/hugolib/page__per_output.go:102 +0xa7e
github.com/gohugoio/hugo/hugolib.newPageContentOutput.func1.2(0x1e66d20, 0xc001a02cc0, 0x0, 0x0, 0x0, 0x1a97eb5)
    /root/project/hugo/hugolib/page__per_output.go:184 +0x26
github.com/gohugoio/hugo/lazy.(*Init).withTimeout.func1(0xc0002133b0, 0x1e66d20, 0xc001a02cc0, 0xc001a02d20)
    /root/project/hugo/lazy/init.go:177 +0x47
created by github.com/gohugoio/hugo/lazy.(*Init).withTimeout
    /root/project/hugo/lazy/init.go:176 +0x10e
Built in 1529 ms
Error: Error building site: "~/Projets/hugo-sites/blog/content/fr/sys/openbsd/munin-server.md:1:1": [BUG] goldmark: runtime error: index out of range [0] with length 0: create an issue on GitHub attaching the file in: /tmp/hugo_bugs/goldmark_3b85aa30346eda091ffbeb5de2a55c91.txt

And the file '/tmp/hugo_bugs/goldmark_3b85aa30346eda091ffbeb5de2a55c91.txt' contains:


## Description

**Munin** est un outil de surveillance des ordinateurs. Il présente ces informations par le biais d'une interface web, qui visualise des graphiques statiques, générés toutes les 5 minutes, par défaut. Un certain nombre de plugins de monitoring divers sont utilisables sans gros effort.

**Munin** permet de monitorer facilement la performance de tout matériel informatique (ordinateurs, réseaux, applications, mesures diverses, etc.). Il permet de discerner les problèmes de performance des ressources.

* Site web : http://munin-monitoring.org/
* Version : 2.0.49
* OpenBSD : 6.6
* Services : httpd + munin_node + munin_asyncd

## Documentation

Il est toujours utile de lire les documentations `pkg-readmes` fournies ; celles disponibles sont dans `/usr/local/share/doc/pkg-readmes/`, à-propos de :

* munin-node
* munin-server
* la documentation officielle :
    * http://munin-monitoring.org/wiki/Documentation
    * http://munin.readthedocs.org/
* la FAQ officielle : http://munin-monitoring.org/wiki/faq

## Installation

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em>sh</em></p></div><div class="code"><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#75715e"># pkg_add munin-node munin-server</span>
</code></pre></div></div>

Un utilisateur `_munin` a été créé et le répertoire web, par défaut, est dans `/var/www/htdocs/munin/`.  Ce répertoire reçoit les droits de l'utilisateur `_munin` et du groupe web `www`.

Pour information, cela installe en dépendance quelques paquets de plus, dont `p5-Net-CIDR` - *ce paquet est utile pour la configuration de l'option `cidr_allow` dans le 
<a href="/fr/sys/openbsd/munin-server/#munin-node-conf" title="munin-node-conf">fichier de configuration du nœud de munin</a>
 ; s'il n'est pas installé, faites-le !*

Si vous désirez le support des moniteurs <abbr title="Simple Network Management Protocol">SNMP</abbr>
, il faut installer le paquet `p5-Net-SNMP`.

## Configuration

Deux fichiers de configuration principaux sont dans `/etc/munin` :

* `munin.conf` relatif au serveur lui-même
* `munin-node.conf` relatif au nœud de surveillance local.

Une fois, ces fichiers configurés, il est possible de démarrer les deux services de munin.

### munin.conf

Généralement, il y a peu de choses à changer, néanmoins, pour informations, certaines variables peuvent être configurées.

* `dbdir` : répertoire de la base de donnée de munin
* `htmldir` : répertoire de destination des données graphiques générées.
* `logdir` : répertoire des journaux de munin
* `rundir` : répertoire où s'exécute le processus munin.

Si vous préférez une exécution du processus par cron plus que par script CGI, vous pouvez modifier les deux variables `graph_strategy` et `html_strategy`.

Par défaut sera configurée une arborescence basique basée sur localhost, tel que :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code>[localhost]
    address 127.0.0.1
    user_node_name yes
</code></pre></div>

Si vous préférez une arborescence par nom de domaine, modifiez/commentez/ajoutez `localhost` par le nom de domaine désiré, tel `huc.fr.eu.org`. Bien sûr, il est possible de surveiller autant d'hôtes que désiré.

Il est possible de gérer les différents nœuds par groupe ; cela permet de regrouper les informations. Je vous renvoie aux documentations officielles et autres manpages.

Les noms de nœuds, de groupe de nœuds ainsi que les adresses IPv6 doivent être encadrés de `[ ]`.

#### Ajouter un nœud

Exemple :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code># server name
[srvr.huc.fr.eu.org]
# address IP
    address 192.168.1.1
    use_node_name yes

# first pc
[pc1.huc.fr.eu.org]
    address 192.168.1.10
    use_node_name yes
</code></pre></div>

#### Recevoir les alertes par mail

Pour recevoir les alertes par mail, il est nécessaire de renseigner une ou plusieurs adresses de contact, tel que :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code>contact.root.command mail -s "Munin notification" email
contact.other-user.command mail -s "Munin notification" email-user
</code></pre></div>

Ceci étant un exemple, remplacez par les informations nécessaires à votre situation.

### munin-node.conf

La partie de la [configuration du fichier de nœud](/fr/sys/openbsd/munin-node/) étant expliquée sur sa propre page, il suffit de suivre les informations et de les adapter au nœud du serveur lui-même

### crontab

Après avoir configuré les deux fichiers de configuration ci-dessus, il est important de paramétrer une tâche cron, tel que :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code># crontab for munin-server
*/5     *       *       *       *       su  -s /bin/sh _munin /usr/local/bin/munin-cron
</code></pre></div>

### newsyslog.conf

Il est nécessaire de modifier le fichier de configuration du journal `/etc/newsyslog.conf` pour créer une rotation des journaux générés par munin.

Ajoutez-y :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code># munin-server
/var/www/logs/munin/munin-cgi-graph.log  www:_munin  644  7     250  *     Z
/var/www/logs/munin/munin-cgi-html.log   www:_munin  644  7     250  *     Z
/var/www/logs/munin/munin-graph.log  _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-html.log   _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-limits.log _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-update.log _munin:_munin   644  7     250  *     Z
# munin-node
/var/log/munin/munin-node.log   root:wheel      644  7     250  *     Z
</code></pre></div>

Ce sont tous les journaux gérés et nécessaires à minima pour munin.

### httpd

Ici, je vous renvoie à mon article de découverte du serveur **httpd**, et tout particulièrement aux informations d'[utilisations](/web/httpd/httpd/#utilisation).

Modification du fichier de configuration `/etc/httpd.conf` pour y ajouter :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code>include "/etc/httpd.d/munin.conf"
</code></pre></div>

Création du fichier de config du serveur pour nagios `/etc/httpd.d/munin.conf` :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code>server "192.168.1.3" {

    listen on * port 80
    root "/htdocs/munin"

#    location "/cgi-bin/munin-cgi*" {
#        fastcgi socket "/run/slowcgi.sock"
#        root "/"
#    }

    location "/" {
        directory index index.html
    }

}
</code></pre></div>

Les fichiers dans le répertoire web de munin doivent avoir les droits de l'utilisateur `_munin` et du groupe web `www`, par défaut.

#### Chroot web

Du fait du chroot web, il est nécessaire de faire les modifications systèmes suivantes :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em>sh</em></p></div><div class="code"><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#75715e"># mkdir -p /var/www/{logs,var/run}/munin</span>
<span style="color:#75715e"># chown _munin: /var/www/{logs,var/run}/munin</span>
</code></pre></div></div>

mais en plus de modifier la 
<a href="/fr/sys/openbsd/munin-server/#munin-conf" title="munin.conf">configuration du fichier du serveur</a>
 :

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em></em></p></div><div class="code"><pre><code>htmldir /var/www/htdocs/munin
logdir /var/www/logs/munin
rundir  /var/www/var/run/munin
</code></pre></div>

### Packet-Filter

Concernant les règles pour <abbr title="Packet-Filter">PF</abbr>
, il faut ouvrir en entrée et sortie, vers et depuis les nœuds :

* pour Munin lui-même : `4949/tcp`
* pour SNMP : `161`, `162` en `udp` et `tcp` - cela dépend de votre configuration <a class="tag" href="/fr/tags/snmp">SNMP</a>
, bien sûr.

## Démarrage des services

Pensez à activer et démarrer les services nécessaires, si ce n'est pas fait !

<div class="info-code"><p class="text-white-50">Code :&nbsp;<em>sh</em></p></div><div class="code"><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#75715e"># rcctl enable munin_node munin_asyncd slowcgi httpd</span>
<span style="color:#75715e"># rcctl start munin_node munin_asyncd slowcgi</span>
<span style="color:#75715e"># httpd -n &amp;&amp; rcctl start httpd</span>
</code></pre></div></div>

## Dépannage

### Erreur : Failed to create rundir (/var/run/munin): Permission denied

<div class="info-quote"><p class="text-white-50">Citation :</p></div><div class="quote"><blockquote>Failed to create rundir (/var/run/munin): Permission denied at /usr/local/libexec/munin/munin-update line 39.
</blockquote></div>

* Avez-vous réellement fait lu le chapitre **
<a href="/fr/sys/openbsd/munin-server/#chroot-web" title="chroot web">chroot</a>
** ?

### Erreur : [FATAL] There is nothing to do here, since there are no nodes with any plugins

<div class="info-quote"><p class="text-white-50">Citation :</p></div><div class="quote"><blockquote>[FATAL] There is nothing to do here, since there are no nodes with any plugins.  Please refer to http://munin-monitoring.org/wiki/FAQ_no_graphs at /usr/local/libexec/munin/munin-html line 40.
</blockquote></div>

* Avez-vous démarré vos services munin ?
* Avez-vous activé/désactivé des plugins ? Si oui, avez vous redémarré le service `munin-node` ?

----

## Remerciements

Une spéciale dédicace à [Solene Rapenne](http://solene.perso.pw) qui fait partie de l'équipe d'OpenBSD, et qui m'a bien aider pour démarrer ce projet.

----

Have you one idea?

hucste commented 4 years ago

I close this, because I forgot to set file config!

github-actions[bot] commented 2 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.