synopsys的license程序在Centos6.8下的問題

        外地研發中心新增幾臺工作站,按照慣例對cadence、synopsys、mentorlicense進行和諧後,啓動license就可以使用了,有人反應synopsys在某臺Server上有問題,根據他們的描述,於是遠程連過去看下具體情況

1、首先確認環境變量是否正確

[carlos@s09 ~]$ which hspice

/app/synopsys/hspice/I-2013.12/hspice/bin/hspice

[jcarloshen@s09 ~]$ which hspice64

/app/synopsys/hspice/I-2013.12/hspice/bin/hspice64

[carlos@s09 ~]$ hspice64

Using: /usr/bin/time -p /app/synopsys/hspice/I-2013.12/hspice/amd64/hspice 

 ---------------------------------------------------------- ------

|                                                                                             |

|             HSPICE Version I-2013.12 64-BIT                           |

|                  SN: P20131125-RHEL64                                    |

|                    Machine Name: s09                                        |

|  Copyright (C) 2013 Synopsys, Inc. All Rights Reserved.   |

|                                                                                            |

 ---------------------------------------------------------- ------

HSPICE Usage:

simulation mode:

  hspice [input_file] { -i input_file | -n #num | -d | -x 

         -o [output_file] | -html [html_file] | -mt #num | -mp [#num]

         -dp [#num] | -dpconfig [dp_configuration_file] | -dplocation [NFS|TMP] | -me

rge |         -gz | -hdl filename | -hdlpath pathname | -vamodel name } 

根據輸出,可以斷定環境變量沒問題。

2、查看license進程

[carlos@s09 synopsys]# ps -ef |grep lmgrd

edadmin  17649     1  0 14:52 pts/2    00:00:00 /var/LIC/synopsys/lmgrd -c /var/LIC/synopsys/synopsys.dat -l /var/LIC/synopsys/logcarlos     23351 17526  0 20:20 pts/8    00:00:00 grep lmgrd

發現缺少一個snpslmd 進程.

3、重啓license並生成log

[edadmin@s09 ]$ /var/LIC/synopsys/lmgrd -c /var/LIC/synopsys/synopsys.dat -l /var/LIC/synopsys/log

在log中發現有異常TCP_NODELAY NOT enabled

查閱後是Hostid與Mac不對應會出現上述情況。

4、查看本機的Hostid與MAC信息

[carlos@s09 bin]# pwd

/app/synopsys/SCL/11.11.1/linux64/bin

[carlos@s09 bin]# ./lmhostid 

lmhostid - Copyright (c) 1989-2015 Flexera Software LLC. All Rights Reserved.

The FlexNet host ID of this machine is ""××604b7ec981 ××604b7ec982""

Only use ONE from the list of hostids.

[carlos@s09 ]# ifconfig -a

eth0      Link encap:Ethernet  HWaddr ××:60:4B:7E:C9:82  

          inet addr:10.10.10.19  Bcast:10.10.10.255  Mask:255.255.255.0

          inet6 addr: fe80::1260:4bff:fe7e:c982/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:13709993 errors:0 dropped:0 overruns:0 frame:0

          TX packets:13582244 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:6085098527 (5.6 GiB)  TX bytes:6456766880 (6.0 GiB)

          Interrupt:20 Memory:eff00000-eff20000 


eth1      Link encap:Ethernet  HWaddr ××:60:4B:7E:C9:81  

          BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:17 Memory:efe00000-efe20000 

[carlos@s09 ~]# vi /etc/udev/rules.d/70-persistent-net.rules 


# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.


# PCI device 0x8086:0x1502 (e1000e)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="××:60:4b:7e:c9:82", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x10d3 (e1000e)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="××:60:4b:7e:c9:81", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

看到license的信息

[carlos@s09 synopsys]# more synopsys.dat

SERVER s09  ××604B7EC982 27000

VENDOR snpslmd /var/LIC/synopsys/snpslmd

synopsys一般會去找eth0默認會使用首個Hostid,猜測因爲MAC地址不對應造成的。

5、便使用另個Mac重新和諧,並啓動license

[carlos@s09 log]$ /var/LIC/synopsys/lmgrd -c /var/LIC/synopsys/synopsys.dat -l /var/LIC/synopsys/log

[carlos@s09 ~]# ps -ef |grep lmgrd

edadmin  25209     1  0 16:35 pts/8    00:00:00 /var/LIC/synopsys/lmgrd -c /var/LIC/synopsys/synopsys.dat -l /var/LIC/synopsys/logedadmin  30058 25209  2 22:07 ?        00:00:13 snpslmd -T s09 11.12 3 -c /var/LIC/synopsys/synopsys.dat -srv LbMe?3s???dE?cspk)/T?]2E2V]?p?yz{T.%mon?#[sGlOE^?C?{9S/?r?W?r#s --lmgrd_start 58f3210 -vdrestart 16carlos     30153 25560  0 22:15 pts/4    00:00:00 grep lmgrd

查看啓動時的log,發現沒有剛纔的ERROR了

6、重新運行hspice後,暫時沒有異常,但是運行一段時間後,又有新問題出現。

7、查看Hspice的log

****** HSPICE -- I-2013.12 64-BIT (Nov 25 2013) RHEL64 ******                  

  Copyright (C) 2013 Synopsys, Inc. All Rights Reserved.                        

  Unpublished-rights reserved under US copyright laws.

  This program is protected by law and is subject to the

  terms and conditions of the license agreement from Synopsys.

  Use of this program is your acarloseptance to be bound by the

  license agreement. HSPICE is the trademark of Synopsys, Inc.

  Input File: test.sp                                                           

  Command line options: test.sp -o test.lis -mt 4

 lic:  

 lic: FLEXlm: v10.9.8 

 lic: USER:   jcarloshen               HOSTNAME: s09 

 lic: HOSTID: XX604b7ec982         PID:      30169 

 lic: Cannot read data from license server system.  The license server system appears to be running,

 **error** invalid memory reference

提示無法從許可證服務器系統讀取數據。許可證服務器系統似乎正在運行。**錯誤*無效的內存引用。

8、查看license運行情況

[carlos@s09 ]# ps -ef |grep lmgrd

edadmin  30378     1  0 22:31 pts/8    00:00:00 /var/LIC/synopsys/lmgrd -c /var/LIC/synopsys/synopsys.dat -l /var/LIC/synopsys/log

發現一個進程異常停止。

9、查看另外server情況。

[carlos@s06 ~]# lsb_release -a

LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:

printing-4.0-ia32:printing-4.0-noarchDistributor ID: CentOS

Description: CentOS release 5.9 (Final)

Release: 5.9

Codename: Final

系統版本Centos5.9

[carlos@s06 ~]# cd /app/synopsys/SCL/11.11.1/linux64/bin/

[carlos@s06 bin]# ./lmhostid 

lmhostid - Copyright (c) 1989-2015 Flexera Software LLC. All Rights Reserved.

The FlexNet host ID of this machine is ""××604b7e105b ××604b7e105c""

Only use ONE from the list of hostids.

[carlos@s06 bin]# ifconfig -a

eth0      Link encap:Ethernet  HWaddr ××:60:4B:7E:10:5C  

          inet addr:10.10.10.16  Bcast:10.10.10.255  Mask:255.255.255.0

          inet6 addr: fe80::1260:4bff:fe7e:carlos5c/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:66614905 errors:0 dropped:0 overruns:0 frame:0

          TX packets:76415073 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:34874497627 (32.4 GiB)  TX bytes:48450863867 (45.1 GiB)

          Interrupt:138 Memory:eff00000-eff20000 


eth1      Link encap:Ethernet  HWaddr ××:60:4B:7E:10:5B  

          BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:201 Memory:efe00000-efe20000 

[carlos@s06 bin]# more /var/LIC/synopsys/synopsys.dat 

SERVER s06 ××604B7E105C 27000

VENDOR snpslmd /var/LIC/synopsys/snpslmd

USE_SERVER

[carlos@s09 ~]# lsb_release -a

LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:p

rinting-4.0-noarchDistributor ID: CentOS

Description: CentOS release 6.8 (Final)

Release: 6.8

Codename: Final

系統版本爲Centos6..8

兩臺工作站硬件一樣,license都是使用的第二個Hostid和諧的,系統版本不一樣,判定license跟使用哪個Hostid無關。

10、查看系統的日誌信息

[root@s09 ~]# dmesg

......

ata4: EH complete

snpslmd[31655]: segfault at 6c153990 ip 0000003982134cfc sp 00007f1f71ae7d28 error 4 in libc-2.12.so[3982000000+18a000]

ata4.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen

ata4.00: failed command: SMART

...

snpslmd' doesn't belong to any package and ProcessUnpackaged i s set to 'no'

...

ata4.01: SATA link down (SStatus 0 SControl 0)

ata4.00: configured for UDMA/100

ata4: EH complete

Saved core dump of pid 3498 (/var/LIC/synopsys/snpslmd) to /var/spool/abrt/ccpp-2017-04-15-00:00:38-3498 (262381568 bytes)
abrtd: Directory 'ccpp-2017-04-15-00:00:38-3498' creation detected

......

Apr 17 00:11:02 s09 kernel: snpslmd[31655]: segfault at 6c153990 ip 0000003982134cfc sp 00007f1f71ae7d28 error 4 in libc-2.12.so[398200000

0+18a000]Apr 17 00:30:19 s09 kernel: ata4.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen

......


#########################T H R E A D############################

問題結論:


查看message日誌發現, 創建堆轉存儲時,訪問到了非法內存地址,從而導致進程coredump,並生成了coredump文件,由於操作系統設置了不生成core文件,導致生成dump文件被刪除。


在RHEL/CentOS 64位(32位沒用過)6.0以上版本中,有core文件被截斷的問題,即使你已經設置了ulimit -S -c unlimited。


原因好像是因爲core pattern設置是abrt,abrt的問題導致core文件很小或者不產生core文件。解決的方法是不使用abrt作爲core pattern。


查看機器的core pattern的設置:

sysctl -a | grep core_pattern

或者:

cat /proc/sys/kernel/core_pattern

如果core pattern設置成了abrt,改成core方式:

[carlos@s09 ~] sysctl -w kernel.core_pattern=core.%p.%e
kernel.core_pattern = core.%p.%e

或者:
[carlos@s09 ~] sysctl -w kernel.core_pattern=core.%p
kernel.core_pattern = core.%p



在Linux下要保證程序崩潰時生成Coredump要注意這些問題:

一、要保證存放Coredump的目錄存在且進程對該目錄有寫權限。存放Coredump的目錄即進程的當前目錄,一般就是當初發出命令啓動該進程時所在的目錄。但如果是通過腳本啓動,則腳本可能會修改當前目錄,這時進程真正的當前目錄就會與當初執行腳本所在目錄不同。這時可以查看”/proc/<進程pid>/cwd“符號鏈接的目標來確定進程真正的當前目錄地址。通過系統服務啓動的進程也可通過這一方法查看。


二、若程序調用了seteuid()/setegid()改變了進程的有效用戶或組,則在默認情況下系統不會爲這些進程生成Coredump。很多服務程序都會調用seteuid(),如Mysql,不論你用什麼用戶運行mysqld_safe啓動MySQL,mysqld進行的有效用戶始終是msyql用戶。如果你當初是以用戶A運行了某個程序,但在ps裏看到的這個程序的用戶卻是B的話,那麼這些進程就是調用了seteuid了。爲了能夠讓這些進程生成core dump,需要將/proc/sys/fs /suid_dumpable文件的內容改爲1(一般默認是0)。


三、要設置足夠大的Core文件大小限制了。程序崩潰時生成的Core文件大小即爲程序運行時佔用的內存大小。但程序崩潰時的行爲不可按平常時的行爲來估計,比如緩衝區溢出等錯誤可能導致堆棧被破壞,因此經常會出現某個變量的值被修改成亂七八糟的,然後程序用這個大小去申請內存就可能導致程序比平常時多佔用很多內存。因此無論程序正常運行時佔用的內存多麼少,要保證生成Core文件還是將大小限制設爲unlimited爲好。

在shell裏使用命令:ulimit -c unlimited,這樣進行修改只是對本次會話有效,是臨時的,如果想讓修改永久生效,則需要修改配置文件,如.bash_profile、/etc/profile或/etc/security/limits.conf



參考文檔:

https://bugzilla.redhat.com/show_bug.cgi?id=583407

http://www.cnblogs.com/sjpisaboy/articles/210228.html

http://www.newsmth.net/nForum/#!article/METech/207964


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章