Exa-Networks / exabgp

The BGP swiss army knife of networking
Other
2.09k stars 447 forks source link

EXABGP CRASHED / HELP US FIX IT with ExaBGP 3.4.11 #278

Closed pavel-odintsov closed 9 years ago

pavel-odintsov commented 9 years ago

Hello, Thomas!

I need ur help again.

exabgp -v
ExaBGP : 3.4.11
Python : 2.7.6 (default, Mar 22 2014, 22:59:56)  [GCC 4.8.2]
Uname  : #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015

When I run it with my config it crashed:

env exabgp.log.level=DEBUG exabgp.daemon.user=root exabgp.daemon.daemonize=false exabgp.daemon.pid=/var/run/exabgp.pid exabgp.log.destination=/var/log/exabgp.log exabgp /etc/exabgp/exabgp.conf
environment file missing
generate it using "exabgp --fi > /usr/local/etc/exabgp/exabgp.env"
Performing reload of exabgp 3.4.11
loading | # Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
loading | # See /usr/share/doc/exabgp/examples for example config files.
loading | 
loading | 
loading | neighbor 192.168.3.1 {
loading |   description "mx480-611";
loading |   router-id 23.228.248.155;
loading |   local-address 23.228.248.155;
loading |   local-as 64513;
loading |   peer-as 64512;
loading |   hold-time 180;
loading |   graceful-restart 5;
loading | 
loading | #  process service-dynamic {
loading | #  run /data/dynamic.sh;
loading | # }
loading | 
loading | 
loading |      flow {
loading |                 route optional-name-of-the-route {
loading |                         match {
loading |                                 source 10.11.11.5/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route1 {
loading |                         match {
loading |                                 source 10.11.11.6/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.7/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.8/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.9/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.10/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.11/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.12/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | }
loading | 
loading | 
parsing | configuration | 'neighbor' '192.168.3.1' '{'
parsing | neighbor      | 'description' '"mx480-611"' ';'
parsing | neighbor      | 'router-id' '23.228.248.155' ';'
parsing | neighbor      | 'local-address' '23.228.248.155' ';'
parsing | neighbor      | 'local-as' '64513' ';'
parsing | neighbor      | 'peer-as' '64512' ';'
parsing | neighbor      | 'hold-time' '180' ';'
parsing | neighbor      | 'graceful-restart' '5' ';'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.5/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route1' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.6/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.7/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.8/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.9/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.10/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.11/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.12/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | '}'
--------------------------------------------------------------------------------
group-updates not enabled for peer 192.168.3.1, it surely should, the default will change to true soon
--------------------------------------------------------------------------------
neighbor 192.168.3.1 {
  description "mx480-611";
  router-id 23.228.248.155;
  local-address 23.228.248.155;
  local-as 64513;
  peer-as 64512;
  hold-time 180;
  group-updates: ;
  auto-flush: true;
  adj-rib-out: true;
  ttl-security: ;

  capability {
    asn4 enable;
    route-refresh disable;
    graceful-restart 5;
    add-path disable;
    multi-session disable;
    operational disable;
    aigp disable;
  }
  family {
    inet4 unicast;
    inet4 multicast;
    inet4 nlri-mpls;
    inet4 mpls-vpn;
    inet4 flow;
    inet4 flow-vpn;
    inet6 unicast;
    inet6 mpls-vpn;
    inet6 flow;
    inet6 flow-vpn;
    l2vpn vpls;
  }
  process {
  }
}

New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
Loaded new configuration successfully

********************************************************************************
EXABGP CRASHED / HELP US FIX IT
********************************************************************************

Sorry, you encountered a problem with ExaBGP and we could not keep the program
running.

There are a few things you can do to help us (and yourself):
- make sure you are running the latest version of the code available at
  https://github.com/Exa-Networks/exabgp/releases/latest
- if so report the issue on https://github.com/Exa-Networks/exabgp/issues
  so it can be fixed (github can be searched for similar reports)

PLEASE, when reporting, do include as much information as you can:
- do not obfuscate any data (feel free to send us a private  email with the
  extra information if your business policy is strict on information sharing)
  https://github.com/Exa-Networks/exabgp/wiki/FAQ
- if you can reproduce the issue, run ExaBGP with the command line option -d
  it provides us with much needed information to fix problems quickly
- include the information presented below

Should you not receive an acknowledgment of your issue on github (assignement,
comment, or similar) within a few hours, feel free to email us to make sure
it was not overlooked. (please keep in mind the authors are based in GMT/Europe)

********************************************************************************
-- Please provide ALL the information below on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************

ExaBGP version : 3.4.11
Python version : 2.7.6 (default, Mar 22 2014, 22:59:56)  [GCC 4.8.2]
System Uname   : #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015
System MaxInt  : 9223372036854775807

-- Traceback

Traceback (most recent call last):
  File "/usr/local/bin/exabgp", line 11, in <module>
    sys.exit(run_exabgp())
  File "/usr/local/lib/python2.7/dist-packages/exabgp/application/__init__.py", line 12, in run_exabgp
    main()
  File "/usr/local/lib/python2.7/dist-packages/exabgp/application/bgp.py", line 221, in main
    run(env,comment,configurations)
  File "/usr/local/lib/python2.7/dist-packages/exabgp/application/bgp.py", line 260, in run
    ok = Reactor(configurations).run()
  File "/usr/local/lib/python2.7/dist-packages/exabgp/reactor/loop.py", line 159, in run
    if not self.logger.restart():
  File "/usr/local/lib/python2.7/dist-packages/exabgp/logger.py", line 220, in restart
    return self._file(destination)
  File "/usr/local/lib/python2.7/dist-packages/exabgp/logger.py", line 193, in _file
    self.critical('ExaBGP does not have the right to write in the requested log directory','logger')
  File "/usr/local/lib/python2.7/dist-packages/exabgp/logger.py", line 228, in report
    if self._syslog:
AttributeError: 'str' object has no attribute '_syslog'

-- Configuration

# Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
# See /usr/share/doc/exabgp/examples for example config files.

neighbor 192.168.3.1 {
    description "mx480-611";
    router-id 23.228.248.155;
    local-address 23.228.248.155;
    local-as 64513;
    peer-as 64512;
    hold-time 180;
    graceful-restart 5;

#    process service-dynamic {
#    run /data/dynamic.sh;    
#   }

     flow {
                route optional-name-of-the-route {
                        match {
                                source 10.11.11.5/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route1 {
                        match {
                                source 10.11.11.6/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.7/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.8/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.9/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.10/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.11/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.12/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

}

-- Logging History

  }
  family {
    inet4 unicast;
    inet4 multicast;
    inet4 nlri-mpls;
    inet4 mpls-vpn;
    inet4 flow;
    inet4 flow-vpn;
    inet6 unicast;
    inet6 mpls-vpn;
    inet6 flow;
    inet6 flow-vpn;
    l2vpn vpls;
  }
  process {
  }
}

New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
Loaded new configuration successfully

********************************************************************************
-- Please provide _ALL_ the information above on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************

Original config here: https://www.dropbox.com/s/6tdnt38ijfbawpc/buggy_exabgp.conf?dl=0

Thanks for your attention!

pavel-odintsov commented 9 years ago

Looks like this bug related with no permissions for writing to /var/log/exabgp.log. I changed log file to /tmp/exabgp.log and everything goes well:

env exabgp.log.level=DEBUG exabgp.daemon.user=root exabgp.daemon.daemonize=false exabgp.daemon.pid=/var/run/exabgp.pid exabgp.log.destination=/tmp/exabgp.log exabgp /etc/exabgp/exabgp.conf
environment file missing
generate it using "exabgp --fi > /usr/local/etc/exabgp/exabgp.env"
Performing reload of exabgp 3.4.11
loading | # Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
loading | # See /usr/share/doc/exabgp/examples for example config files.
loading | 
loading | 
loading | neighbor 192.168.3.1 {
loading |   description "mx480-611";
loading |   router-id 23.228.248.155;
loading |   local-address 23.228.248.155;
loading |   local-as 64513;
loading |   peer-as 64512;
loading |   hold-time 180;
loading |   graceful-restart 5;
loading | 
loading | #  process service-dynamic {
loading | #  run /data/dynamic.sh;
loading | # }
loading | 
loading | 
loading |      flow {
loading |                 route optional-name-of-the-route {
loading |                         match {
loading |                                 source 10.11.11.5/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route1 {
loading |                         match {
loading |                                 source 10.11.11.6/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.7/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.8/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.9/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.10/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.11/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.12/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | }
loading | 
loading | 
parsing | configuration | 'neighbor' '192.168.3.1' '{'
parsing | neighbor      | 'description' '"mx480-611"' ';'
parsing | neighbor      | 'router-id' '23.228.248.155' ';'
parsing | neighbor      | 'local-address' '23.228.248.155' ';'
parsing | neighbor      | 'local-as' '64513' ';'
parsing | neighbor      | 'peer-as' '64512' ';'
parsing | neighbor      | 'hold-time' '180' ';'
parsing | neighbor      | 'graceful-restart' '5' ';'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.5/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route1' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.6/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.7/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.8/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.9/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.10/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.11/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.12/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | '}'
--------------------------------------------------------------------------------
group-updates not enabled for peer 192.168.3.1, it surely should, the default will change to true soon
--------------------------------------------------------------------------------
neighbor 192.168.3.1 {
  description "mx480-611";
  router-id 23.228.248.155;
  local-address 23.228.248.155;
  local-as 64513;
  peer-as 64512;
  hold-time 180;
  group-updates: ;
  auto-flush: true;
  adj-rib-out: true;
  ttl-security: ;

  capability {
    asn4 enable;
    route-refresh disable;
    graceful-restart 5;
    add-path disable;
    multi-session disable;
    operational disable;
    aigp disable;
  }
  family {
    inet4 unicast;
    inet4 multicast;
    inet4 nlri-mpls;
    inet4 mpls-vpn;
    inet4 flow;
    inet4 flow-vpn;
    inet6 unicast;
    inet6 mpls-vpn;
    inet6 flow;
    inet6 flow-vpn;
    l2vpn vpls;
  }
  process {
  }
}

New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
Loaded new configuration successfully

Could you offer human readable error in this case? :)

thomas-mangin commented 9 years ago

You were right, this was due to a permission issue when wanting to write the file. If you indicate a place where ExaBGP can write it will work. Fixed in master, the patch is too big to rollback to 3.4

pavel-odintsov commented 9 years ago

Hello!

Sorry but reproduced with master:

sbin/exabgp -v
ExaBGP : 3.4.10
Python : 2.7.6 (default, Mar 22 2014, 22:59:56)  [GCC 4.8.2]
Uname  : #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015
env exabgp.log.level=DEBUG exabgp.daemon.user=root exabgp.daemon.daemonize=false exabgp.daemon.pid=/var/run/exabgp.pid exabgp.log.destination=/var/log/exabgp.log sbin/exabgp /etc/exabgp/exabgp.conf
environment file missing
generate it using "exabgp --fi > /home/admin1/exabgp-master/etc/exabgp/exabgp.env"
Performing reload of exabgp 3.4.10
loading | # Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
loading | # See /usr/share/doc/exabgp/examples for example config files.
loading | 
loading | 
loading | neighbor 192.168.3.1 {
loading |   description "mx480-611";
loading |   router-id 23.228.248.155;
loading |   local-address 23.228.248.155;
loading |   local-as 64513;
loading |   peer-as 64512;
loading |   hold-time 180;
loading |   graceful-restart 5;
loading | 
loading | #  process service-dynamic {
loading | #  run /data/dynamic.sh;
loading | # }
loading | 
loading |         process service-dynamic {
loading |         run /usr/bin/socat stdout pipe:/var/run/exabgp.cmd;
loading | 
loading |     }
loading | 
loading | 
loading | 
loading | 
loading |      flow {
loading |                 route optional-name-of-the-route {
loading |                         match {
loading |                                 source 10.11.11.5/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route1 {
loading |                         match {
loading |                                 source 10.11.11.6/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.7/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.8/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.9/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.10/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.11/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading |     flow {
loading |                 route optional-name-of-the-route2 {
loading |                         match {
loading |                                 source 10.11.11.12/32;
loading |                                 destination 192.168.200.208/32;
loading |                                port =80 =8080;
loading |                                protocol tcp;
loading | 
loading |                         }
loading |                         then {
loading |                                 discard;
loading |                         }
loading |                 }
loading |         }
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | 
loading | }
loading | 
loading | 
parsing | configuration | 'neighbor' '192.168.3.1' '{'
parsing | neighbor      | 'description' '"mx480-611"' ';'
parsing | neighbor      | 'router-id' '23.228.248.155' ';'
parsing | neighbor      | 'local-address' '23.228.248.155' ';'
parsing | neighbor      | 'local-as' '64513' ';'
parsing | neighbor      | 'peer-as' '64512' ';'
parsing | neighbor      | 'hold-time' '180' ';'
parsing | neighbor      | 'graceful-restart' '5' ';'
parsing | neighbor      | 'process' 'service-dynamic' '{'
parsing | process       | 'run' '/usr/bin/socat stdout pipe:/var/run/exabgp.cmd' ';'
parsing | process       | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.5/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route1' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.6/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.7/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.8/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.9/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.10/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.11/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | 'flow' '{'
parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
parsing | flow-route    | 'match' '{'
parsing | flow-match    | 'source' '10.11.11.12/32' ';'
parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
parsing | flow-match    | 'port' '=80' '=8080' ';'
parsing | flow-match    | 'protocol' 'tcp' ';'
parsing | flow-match    | '}'
parsing | flow-route    | 'then' '{'
parsing | flow-then     | 'discard' ';'
parsing | flow-then     | '}'
parsing | flow-route    | '}'
warning: no check on flows are implemented
parsing | flow          | '}'
parsing | neighbor      | '}'
neighbor 192.168.3.1 {
  description "mx480-611";
  router-id 23.228.248.155;
  host-name nfdump-lax;
  domain-name ;
  local-address 23.228.248.155;
  local-as 64513;
  peer-as 64512;
  hold-time 180;
  group-updates: True;
  auto-flush: true;
  adj-rib-out: true;
  ttl-security: ;

  capability {
    asn4 enable;
    route-refresh disable;
    graceful-restart 5;
    add-path disable;
    multi-session disable;
    operational disable;
    aigp disable;
  }
  family {
    inet4 unicast;
    inet4 multicast;
    inet4 nlri-mpls;
    inet4 mpls-vpn;
    inet4 rtc;
    inet4 flow;
    inet4 flow-vpn;
    inet6 unicast;
    inet6 multicast;
    inet6 nlri-mpls;
    inet6 mpls-vpn;
    inet6 flow;
    inet6 flow-vpn;
    l2vpn vpls;
    l2vpn evpn;
  }
  process {
  }
}

New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
Loaded new configuration successfully
Forked process service-dynamic

********************************************************************************
EXABGP CRASHED / HELP US FIX IT
********************************************************************************

Sorry, you encountered a problem with ExaBGP and we could not keep the program
running.

There are a few things you can do to help us (and yourself):
- make sure you are running the latest version of the code available at
  https://github.com/Exa-Networks/exabgp/releases/latest
- if so report the issue on https://github.com/Exa-Networks/exabgp/issues
  so it can be fixed (github can be searched for similar reports)

PLEASE, when reporting, do include as much information as you can:
- do not obfuscate any data (feel free to send us a private  email with the
  extra information if your business policy is strict on information sharing)
  https://github.com/Exa-Networks/exabgp/wiki/FAQ
- if you can reproduce the issue, run ExaBGP with the command line option -d
  it provides us with much needed information to fix problems quickly
- include the information presented below

Should you not receive an acknowledgment of your issue on github (assignement,
comment, or similar) within a few hours, feel free to email us to make sure
it was not overlooked. (please keep in mind the authors are based in GMT/Europe)

********************************************************************************
-- Please provide ALL the information below on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************

ExaBGP version : 3.4.10
Python version : 2.7.6 (default, Mar 22 2014, 22:59:56)  [GCC 4.8.2]
System Uname   : #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015
System MaxInt  : 9223372036854775807

-- Traceback

Traceback (most recent call last):
  File "/home/admin1/exabgp-master/lib/exabgp/application/bgp.py", line 318, in <module>
    main()
  File "/home/admin1/exabgp-master/lib/exabgp/application/bgp.py", line 231, in main
2015/05/29 00:46:32 socat[26955] E open("/var/run/exabgp.cmd", 02, 0666): Permission denied
    run(env,comment,configurations)
  File "/home/admin1/exabgp-master/lib/exabgp/application/bgp.py", line 270, in run
    ok = Reactor(configurations).run()
  File "/home/admin1/exabgp-master/lib/exabgp/reactor/loop.py", line 159, in run
    if not self.logger.restart():
  File "/home/admin1/exabgp-master/lib/exabgp/logger.py", line 258, in restart
    return self._file(destination)
  File "/home/admin1/exabgp-master/lib/exabgp/logger.py", line 231, in _file
    self.critical('ExaBGP does not have the right to write in the requested log directory','logger')
  File "/home/admin1/exabgp-master/lib/exabgp/logger.py", line 266, in report
    if self._syslog:
AttributeError: 'str' object has no attribute '_syslog'

-- Configuration

# Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
# See /usr/share/doc/exabgp/examples for example config files.

neighbor 192.168.3.1 {
    description "mx480-611";
    router-id 23.228.248.155;
    local-address 23.228.248.155;
    local-as 64513;
    peer-as 64512;
    hold-time 180;
    graceful-restart 5;

#    process service-dynamic {
#    run /data/dynamic.sh;    
#   }

        process service-dynamic {
        run /usr/bin/socat stdout pipe:/var/run/exabgp.cmd;

    }   

     flow {
                route optional-name-of-the-route {
                        match {
                                source 10.11.11.5/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route1 {
                        match {
                                source 10.11.11.6/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.7/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.8/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.9/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.10/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.11/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.12/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

}

-- Logging History

    inet4 mpls-vpn;
    inet4 rtc;
    inet4 flow;
    inet4 flow-vpn;
    inet6 unicast;
    inet6 multicast;
    inet6 nlri-mpls;
    inet6 mpls-vpn;
    inet6 flow;
    inet6 flow-vpn;
    l2vpn vpls;
    l2vpn evpn;
  }
  process {
  }
}

New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
Loaded new configuration successfully
Forked process service-dynamic

********************************************************************************
-- Please provide _ALL_ the information above on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************

exabgp --di here:

env exabgp.log.level=DEBUG exabgp.daemon.user=root exabgp.daemon.daemonize=false exabgp.daemon.pid=/var/run/exabgp.pid exabgp.log.destination=/var/log/exabgp.log sbin/exabgp --di /etc/exabgp/exabgp.conf

[exabgp.api]
encoder = text

[exabgp.daemon]
pid = '/var/run/exabgp.pid'
user = 'root'

[exabgp.log]
all = true
destination = '/var/log/exabgp.log'
level = DEBUG
message = true
packets = true
parser = true
rib = true
routes = true
short = true
timers = true

[exabgp.pdb]
enable = true
pavel-odintsov commented 9 years ago

Reproduced on another machine :(

env exabgp.log.level=DEBUG exabgp.daemon.user=root exabgp.daemon.daemonize=false exabgp.daemon.pid=/var/run/exabgp.pid exabgp.log.destination=/var/log/exabgp.log sbin/exabgp ~/Dropbox/ExaBGP_bug_from_psyhz/buggy_exabgp.conf 

exabgp 1155   configuration environment file missing
exabgp 1155   configuration generate it using "exabgp --fi > /Users/pavel-odintsov/exabgp/etc/exabgp/exabgp.env"
exabgp 1155   reactor       Performing reload of exabgp 3.4.10
exabgp 1155   configuration loading | # Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
exabgp 1155   configuration loading | # See /usr/share/doc/exabgp/examples for example config files.
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | neighbor 192.168.3.1 {
exabgp 1155   configuration loading |   description "mx480-611";
exabgp 1155   configuration loading |   router-id 23.228.248.155;
exabgp 1155   configuration loading |   local-address 23.228.248.155;
exabgp 1155   configuration loading |   local-as 64513;
exabgp 1155   configuration loading |   peer-as 64512;
exabgp 1155   configuration loading |   hold-time 180;
exabgp 1155   configuration loading |   graceful-restart 5;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | #  process service-dynamic {
exabgp 1155   configuration loading | #  run /data/dynamic.sh;
exabgp 1155   configuration loading | # }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |      flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.5/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route1 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.6/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.7/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.8/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.9/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.10/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.11/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |     flow {
exabgp 1155   configuration loading |                 route optional-name-of-the-route2 {
exabgp 1155   configuration loading |                         match {
exabgp 1155   configuration loading |                                 source 10.11.11.12/32;
exabgp 1155   configuration loading |                                 destination 192.168.200.208/32;
exabgp 1155   configuration loading |                                port =80 =8080;
exabgp 1155   configuration loading |                                protocol tcp;
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                         then {
exabgp 1155   configuration loading |                                 discard;
exabgp 1155   configuration loading |                         }
exabgp 1155   configuration loading |                 }
exabgp 1155   configuration loading |         }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | }
exabgp 1155   configuration loading | 
exabgp 1155   configuration loading | 
exabgp 1155   configuration parsing | configuration | 'neighbor' '192.168.3.1' '{'
exabgp 1155   configuration parsing | neighbor      | 'description' '"mx480-611"' ';'
exabgp 1155   configuration parsing | neighbor      | 'router-id' '23.228.248.155' ';'
exabgp 1155   configuration parsing | neighbor      | 'local-address' '23.228.248.155' ';'
exabgp 1155   configuration parsing | neighbor      | 'local-as' '64513' ';'
exabgp 1155   configuration parsing | neighbor      | 'peer-as' '64512' ';'
exabgp 1155   configuration parsing | neighbor      | 'hold-time' '180' ';'
exabgp 1155   configuration parsing | neighbor      | 'graceful-restart' '5' ';'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.5/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route1' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.6/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.7/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.8/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.9/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.10/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.11/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | 'flow' '{'
exabgp 1155   configuration parsing | flow          | 'route' 'optional-name-of-the-route2' '{'
exabgp 1155   configuration parsing | flow-route    | 'match' '{'
exabgp 1155   configuration parsing | flow-match    | 'source' '10.11.11.12/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'destination' '192.168.200.208/32' ';'
exabgp 1155   configuration parsing | flow-match    | 'port' '=80' '=8080' ';'
exabgp 1155   configuration parsing | flow-match    | 'protocol' 'tcp' ';'
exabgp 1155   configuration parsing | flow-match    | '}'
exabgp 1155   configuration parsing | flow-route    | 'then' '{'
exabgp 1155   configuration parsing | flow-then     | 'discard' ';'
exabgp 1155   configuration parsing | flow-then     | '}'
exabgp 1155   configuration parsing | flow-route    | '}'
exabgp 1155   configuration warning: no check on flows are implemented
exabgp 1155   configuration parsing | flow          | '}'
exabgp 1155   configuration parsing | neighbor      | '}'
exabgp 1155   configuration neighbor 192.168.3.1 {
exabgp 1155   configuration   description "mx480-611";
exabgp 1155   configuration   router-id 23.228.248.155;
exabgp 1155   configuration   host-name MacBook-Pro-Pavel;
exabgp 1155   configuration   domain-name local;
exabgp 1155   configuration   local-address 23.228.248.155;
exabgp 1155   configuration   local-as 64513;
exabgp 1155   configuration   peer-as 64512;
exabgp 1155   configuration   hold-time 180;
exabgp 1155   configuration   group-updates: True;
exabgp 1155   configuration   auto-flush: true;
exabgp 1155   configuration   adj-rib-out: true;
exabgp 1155   configuration   ttl-security: ;
exabgp 1155   configuration 
exabgp 1155   configuration   capability {
exabgp 1155   configuration     asn4 enable;
exabgp 1155   configuration     route-refresh disable;
exabgp 1155   configuration     graceful-restart 5;
exabgp 1155   configuration     add-path disable;
exabgp 1155   configuration     multi-session disable;
exabgp 1155   configuration     operational disable;
exabgp 1155   configuration     aigp disable;
exabgp 1155   configuration   }
exabgp 1155   configuration   family {
exabgp 1155   configuration     inet4 unicast;
exabgp 1155   configuration     inet4 multicast;
exabgp 1155   configuration     inet4 nlri-mpls;
exabgp 1155   configuration     inet4 mpls-vpn;
exabgp 1155   configuration     inet4 rtc;
exabgp 1155   configuration     inet4 flow;
exabgp 1155   configuration     inet4 flow-vpn;
exabgp 1155   configuration     inet6 unicast;
exabgp 1155   configuration     inet6 multicast;
exabgp 1155   configuration     inet6 nlri-mpls;
exabgp 1155   configuration     inet6 mpls-vpn;
exabgp 1155   configuration     inet6 flow;
exabgp 1155   configuration     inet6 flow-vpn;
exabgp 1155   configuration     l2vpn vpls;
exabgp 1155   configuration     l2vpn evpn;
exabgp 1155   configuration   }
exabgp 1155   configuration   process {
exabgp 1155   configuration   }
exabgp 1155   configuration }
exabgp 1155   configuration 
exabgp 1155   configuration 
exabgp 1155   reactor       New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
exabgp 1155   configuration Loaded new configuration successfully

********************************************************************************
EXABGP CRASHED / HELP US FIX IT
********************************************************************************

Sorry, you encountered a problem with ExaBGP and we could not keep the program
running.

There are a few things you can do to help us (and yourself):
- make sure you are running the latest version of the code available at
  https://github.com/Exa-Networks/exabgp/releases/latest
- if so report the issue on https://github.com/Exa-Networks/exabgp/issues
  so it can be fixed (github can be searched for similar reports)

PLEASE, when reporting, do include as much information as you can:
- do not obfuscate any data (feel free to send us a private  email with the
  extra information if your business policy is strict on information sharing)
  https://github.com/Exa-Networks/exabgp/wiki/FAQ
- if you can reproduce the issue, run ExaBGP with the command line option -d
  it provides us with much needed information to fix problems quickly
- include the information presented below

Should you not receive an acknowledgment of your issue on github (assignement,
comment, or similar) within a few hours, feel free to email us to make sure
it was not overlooked. (please keep in mind the authors are based in GMT/Europe)

********************************************************************************
-- Please provide ALL the information below on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************

ExaBGP version : 3.4.10
Python version : 2.7.9 (default, Dec 13 2014, 15:13:49)  [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]
System Uname   : Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; root:xnu-2782.20.48~5/RELEASE_X86_64
System MaxInt  : 9223372036854775807

-- Traceback

Traceback (most recent call last):
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/application/bgp.py", line 318, in <module>
    main()
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/application/bgp.py", line 231, in main
    run(env,comment,configurations)
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/application/bgp.py", line 270, in run
    ok = Reactor(configurations).run()
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/reactor/loop.py", line 159, in run
    if not self.logger.restart():
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/logger.py", line 258, in restart
    return self._file(destination)
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/logger.py", line 231, in _file
    self.critical('ExaBGP does not have the right to write in the requested log directory','logger')
  File "/Users/pavel-odintsov/exabgp/lib/exabgp/logger.py", line 266, in report
    if self._syslog:
AttributeError: 'str' object has no attribute '_syslog'

-- Configuration

# Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
# See /usr/share/doc/exabgp/examples for example config files.

neighbor 192.168.3.1 {
    description "mx480-611";
    router-id 23.228.248.155;
    local-address 23.228.248.155;
    local-as 64513;
    peer-as 64512;
    hold-time 180;
    graceful-restart 5;

#    process service-dynamic {
#    run /data/dynamic.sh;    
#   }

     flow {
                route optional-name-of-the-route {
                        match {
                                source 10.11.11.5/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route1 {
                        match {
                                source 10.11.11.6/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }
    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.7/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.8/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.9/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.10/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.11/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

    flow {
                route optional-name-of-the-route2 {
                        match {
                                source 10.11.11.12/32;
                                destination 192.168.200.208/32;
                               port =80 =8080;
                               protocol tcp;

                        }
                        then {
                                discard;
                        }
                }
        }

}

-- Logging History

exabgp 1155   configuration     inet4 nlri-mpls;
exabgp 1155   configuration     inet4 mpls-vpn;
exabgp 1155   configuration     inet4 rtc;
exabgp 1155   configuration     inet4 flow;
exabgp 1155   configuration     inet4 flow-vpn;
exabgp 1155   configuration     inet6 unicast;
exabgp 1155   configuration     inet6 multicast;
exabgp 1155   configuration     inet6 nlri-mpls;
exabgp 1155   configuration     inet6 mpls-vpn;
exabgp 1155   configuration     inet6 flow;
exabgp 1155   configuration     inet6 flow-vpn;
exabgp 1155   configuration     l2vpn vpls;
exabgp 1155   configuration     l2vpn evpn;
exabgp 1155   configuration   }
exabgp 1155   configuration   process {
exabgp 1155   configuration   }
exabgp 1155   configuration }
exabgp 1155   configuration 
exabgp 1155   configuration 
exabgp 1155   reactor       New peer setup: neighbor 192.168.3.1 local-ip 23.228.248.155 local-as 64513 peer-as 64512 router-id 23.228.248.155 family-allowed in-open
exabgp 1155   configuration Loaded new configuration successfully

********************************************************************************
-- Please provide _ALL_ the information above on :
-- https://github.com/Exa-Networks/exabgp/issues
********************************************************************************
thomas-mangin commented 9 years ago

The bug was only fixed on master ... On 3.4.11, please use a location where you have write access :smiling_imp:

pavel-odintsov commented 9 years ago

Haven't saw any commit since day after yesterday in master:

git log|head -5 
commit 3ecbaaf581dc4c80ec452da291c905209f6ae6fa
Author: Thomas Mangin <thomas.mangin@exa-networks.co.uk>
Date:   Wed May 27 15:21:50 2015 +0100

    adding changelog credit for bug report
thomas-mangin commented 9 years ago

Ok, it was only on my own repository ..

git push upstream Counting objects: 143, done. Delta compression using up to 4 threads. Compressing objects: 100% (136/136), done. Writing objects: 100% (143/143), 14.33 KiB | 0 bytes/s, done. Total 143 (delta 116), reused 0 (delta 0) To git@github.com:Exa-Networks/exabgp.git 3ecbaaf..71b8d6c master -> master

pavel-odintsov commented 9 years ago

OK, waiting for public version for testing :)

thomas-mangin commented 9 years ago

I tested on my local machine and it seems to work as expected.

Phenomanan commented 6 years ago

So glad this post exists... I would not have figured the log destination to have been the issue. Thanks!