The problem is with the mac_addr field.
For my Infiniband HCA the hardware address is 59 chars long.
I changed the scheme of the engine and now it works.
Itzik
-----Original Message-----
From: Livnat Peer [mailto:lpeer@redhat.com]
Sent: שבת 12 מאי 2012 21:48
To: Dan Kenigsberg
Cc: Itamar Heim; Itzik Brown; engine-devel(a)ovirt.org; Yaniv Dary
Subject: Re: [Engine-devel] value too long for type character varying(20) in function
"insertvds_interface"
On 11/05/12 11:40, Dan Kenigsberg wrote:
On Fri, May 11, 2012 at 11:04:14AM +0300, Itamar Heim wrote:
> On 05/11/2012 03:52 AM, Itzik Brown wrote:
>> Hi,
>>
>> When running VDSM on host with Infiniband HCAs I get the following errors in
/usr/share/jboss-as/standalone/log/server.log on the ovirt-engine host.
>>
>> WARN [org.ovirt.engine.core.vdsbroker.VdsManager] (QuartzScheduler_Worker-17)
ResourceManager::refreshVdsRunTimeInfo::Failed to refresh VDS , vds =
783eb0ac-9a91-11e1-a8e4-000c29de7759 : xena003, error = DataIntegrityViolationException:
CallableStatementCallback; SQL [{call insertvds_interface(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?)}]; ERROR: value too long for type character varying(20)
>> Where: SQL statement "INSERT INTO vds_interface(addr, bond_name,
bond_type, gateway, id, is_bond, bond_opts, mac_addr, name, network_name, speed, subnet,
boot_protocol, type, VDS_ID, vlan_id, mtu, bridged)
>> VALUES(v_addr, v_bond_name, v_bond_type, v_gateway, v_id, v_is_bond,
v_bond_opts, v_mac_addr, v_name, v_network_name, v_speed, v_subnet, v_boot_protocol,
v_type, v_vds_id, v_vlan_id, v_mtu, v_bridged)"
>>
>> More detailed log:
>>
http://pastebin.com/AHD3di5i
>>
>> VDSM: From git repository commit
>> 8a14b63fbbafbdb9ee7f85a9b702bff310f4f668
>> oVirt-engine: From git repository comit
>> b24dddf094e08afa6a2032a487b37476318a872d
>>
>> Any suggestions?
>
> in general, you would need to send a patch to upgrade the scheme to a
> value longer than 20 characters for a logical network name.
> 1. I think bridge name is linux is limited to 15 characters, so not
> sure actually why 20 are allowed today. danken?
No idea why it's 20.. IIRC vdsm silently ignore the trailing chars
past the 15th.
> 2. if changing the db scheme of the engine, also need to remember
to
> upgrade the history db as well.
> 3. if different network implementation can support varying lengths,
> need to add validations in engine ("CanDoAction") to check the
> length per type of network implementation.