Re: dmg pool operation stuck

Nabarro, Tom

This is unusual, normally the name resolution works.


After talking to a colleague (Mike), we suspect that the IsLocalAddr() test is failing to match the AP address with a local address, with the result that the MS never starts:


In ordered to investigate this case, since you seem to be open to adding debugging code, could you add some debug to dump the list of ifaceAddrs returned so that we can see what the system's idea of the local address set is please?


From: <> On Behalf Of allen.zhuo@...
Sent: Thursday, December 2, 2021 7:49 AM
Subject: Re: [daos] dmg pool operation stuck


Hi Tom,
I think I know why it timed out when creating the pool. Because I set the 'access_points:' in daos_server.yml to my hostname 'sw2', it should be set to 'localhost'. If it is set to hostname, it will be judged as LocalAddr (common.IsLocalAddr(repAddr)) in new NewDatabase, and then not setReplica.
I'm not sure if this is a bug, but I think it should support setting to hostname.

// NewDatabase returns a configured and initialized Database instance.

func NewDatabase(log logging.Logger, cfg *DatabaseConfig) (*Database, error) {

        if cfg == nil {

                cfg = &DatabaseConfig{}



        if cfg.SystemName == "" {

                cfg.SystemName = build.DefaultSystemName



        db := &Database{

                log:                log,

                cfg:                cfg,

                replicaAddr:        &syncTCPAddr{},

                shutdownErrCh:      make(chan error),

                raftLeaderNotifyCh: make(chan bool),


                data: &dbData{

                        log: log,


                        Members: &MemberDatabase{

                                Ranks:        make(MemberRankMap),

                                Uuids:        make(MemberUuidMap),

                                Addrs:        make(MemberAddrMap),

                                FaultDomains: NewFaultDomainTree(),


                        Pools: &PoolDatabase{

                                Ranks:  make(PoolRankMap),

                                Uuids:  make(PoolUuidMap),

                                Labels: make(PoolLabelMap),


                        SchemaVersion: CurrentSchemaVersion,




        for _, repAddr := range db.cfg.Replicas {

                if !common.IsLocalAddr(repAddr) {






        return db, nil



Join to automatically receive all group messages.