bash issue on solaris 8 ( Segmentation fault for non root users) - Systems Maintenance(Archived)

Hi,
This is solaris 8 on sparc and a NFS file server for the NIS+ environment. As supposed to be this file server is nis+ client.
Now this issue happens only sometimes and goes away on its own but it did not this time.
I connect to file server using ssh, system closes my session,
this is ssh -vvv log , copied here : http://pastebin.ca/1633893Please note that my shell is /bin/bash. It worked 99% time but not now, nothing is changed on system.
If I ssh root#fileserver then ssh connection works fine. root can also run bash command. and run other commands in bash
For a normal user with csh if the user tries "bash" , then gets
user#fileserver%> bash
Segmentation Fault
I am thinking this is somewhere related to rpc but I do not see any errors on nis+ server nor on fileserver.
%>truss bash o/p is here :
http://pastebin.ca/1633907Please let me know what is this issue related to. If by stopping/restarting a process helps that would be great.
one more thing to note is, other nis+ clients can mount shares from this fileserver properly and authentication also works fine on them even for users with /bin/bash shell and bash does work manually also.
If you need any other info, please let me know
Please help!
Thanks! 

Anyone any idea? I thought the truss o/p copied in pastebin might be very useful
Additional info, for someone with /bin/tcsh as shell, when su - <user> from root account, following messages come up
free(4b31688) bad block. (memtop = 4b7e400 membot = 9c9a0)
free(4b31688) bad block. (memtop = 4b7e400 membot = 9c9a0)
free(4b316c8) bad block. (memtop = 4b7e400 membot = 9c9a0)
free(4b316c8) bad block. (memtop = 4b7e400 membot = 9c9a0)
free(4b31448) bad block. (memtop = 4b7ec00 membot = 9c9a0)
free(4b31448) bad block. (memtop = 4b7ec00 membot = 9c9a0)
free(49fca08) bad block. (memtop = 4b7f400 membot = 9c9a0)
free(49fca08) bad block. (memtop = 4b7f400 membot = 9c9a0)$ truss -f -t stat,open /bin/bash
http://pastebin.ca/1635134 

Issue resolved, Nis_cachemgr was culprit 

starting the rpc again helped.

Related

Configuring Shell Script Resource on IDM

Hi all,
I am in the process of configuring a Shell Script Resource on my IDM system.
I used the Shell-Script-Resource-Object.xml (which is provided by IDM in the Samples folder).
So far, everything worked fine. I set up the parameters, tested the "Test Configuration" button, and it was successful.
The next phase is to proceed with the basic tasks (such as : create user, update user, delete user, etc)
This is where my problem lies.
The IDM manuals do not say anything about how this should be done. Neither do any of Sun's reference material (perhaps, I'm looking in the wrong place??)
I know that the "Resource Actions" should contain the scripts themselves. But, there's no mention of how those scripts should be configured.
The scripts themselves reside on the UNIX machine, which is where they should be. But, how should I invoke them?
Any help will be much appreciated.
Thanks 
Here's the sample resource action object for you from idm6. I do not think there're a lot of changes in 7 and 8 since then.
This ResourceAction script executes the main script (WSRSRC_Script) which resides on the resource . Main script knows what the current action is by getting value of WSUSER_ACTION.
So, the whole work, in my case, was done by that big main script. All ResourceActions scripts look very similar and just call the main script with appropriate argument.
WSRSRC_Script is just a custom Resource Parameter, which were added manually to the Resource object. It contains a whole path to the main script on the resource (like /export/home/idmagent/idmscript.sh)
<ResourceAction name='RESOURCE01 CreateUser Action' creator='Administrator' createDate='' lastModifier='Administrator' lastModDate='' lastMod='14'>
  <ResTypeAction restype='Shell Script' actionType='UnixShell'>
    <act>
     
     
     WSUSER_ACTION=create;
     export WSUSER_ACTION
     echo "`date`: === ${WSUSER_ACTION} Action Start ===" >>${WSRSRC_LOG}
     env | grep ^WSU >>${WSRSRC_LOG}
     echo "`date`: Executing resource script..." >>${WSRSRC_LOG}
     ${WSRSRC_Script}
     errcode=$?
     echo "`date`: errcode = ${errcode}" >>${WSRSRC_LOG}
     echo "`date`: === ${WSUSER_ACTION} Action End ===" >>${WSRSRC_LOG}
     exit $errcode
</act>
  </ResTypeAction>
  <MemberObjectGroups>
    <ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
  </MemberObjectGroups>
</ResourceAction>I hope it will help you. 
Hi Andrey
thanks for your response.
Actually, there have been some changes since.
For example, here is the Resource Action Script for "Create User" :
*<ResourceAction name='ShellSample-74kfX CreateUser Action'>*
*<ResTypeAction restype='Shell Script' actionType='UnixShell'>*
*<act>*
#
echo "======== ShellTest55 CreateUser Action at `date`" >./AA_CreateUser.txt
set >>./AA_CreateUser.txt
cat ./AA_CreateUser.txt >>./AAA_Testlog.txt
#
if [ "${WSUSER_accountId}xxx" = "$(accountId)" ]; then
echo "WSUSER_accountId environment variable not defined."
exit 118
fi
if [ "${WSRSRC_NAME}xxx" = "Shell Script" ]; then
echo "WSRSRC_NAME environment variable not defined."
exit 119
fi
#
if [ ! -e "./$WSRSRC_NAME" ]; then
mkuser ./$WSRSRC_NAME
fi
if [ ! -d "./$WSRSRC_NAME" ]; then
exit 120
fi
if [ ! -r "./$WSRSRC_NAME" ]; then
exit 121
fi
#
if [ -e "./$WSRSRC_NAME/$WSUSER_accountId" ]; then
exit 122
fi
#echo "Account ID,User ID,Last Name,First Name,Email,Full Name" >./$WSRSRC_NAME/$WSUSER_accountId
echo $WSUSER_accountId,$WSUSER_User_ID,$WSUSER_Last_Name,$WSUSER_First_Name,$WSUSER_Email,$WSUSER_Full_Name >>./$WSRSRC_NAME/$WSUSER_accountId
#
if [ ! -e "./$WSRSRC_NAME/$WSUSER_accountId" ]; then
exit 123
fi
cat ./$WSRSRC_NAME/$WSUSER_accountId >>./AA_CreateUser.txt
cat ./$WSRSRC_NAME/$WSUSER_accountId >>./AAA_Testlog.txt
cat ./$WSRSRC_NAME/$WSUSER_accountId
exit 0          
*</act>*
*</ResTypeAction>*
*</ResourceAction>*
It's a bit different from the one you showed me (I guess IDM 8.1 contains a lot of new stuff)
I just need to know how to change/modify this example-script to be able to execute the actual Create-User script on my Unix resource. 
Replace the line
mkuser ./$WSRSRC_NAMEwith the command which executes your own script:
For example:
perl /path/to/your/perl/script/on/the/resource/like/Create-User_script.pl 
Thanks again Andrey,
I tried as you suggested, but it didn't work.
Perhaps, I am doing something wrong.
The path that executes my script is very simply : *[myhome]$ "name_of_script".*
At the beginning of the script itself is : */usr/bin/bash*
You stated that the path should be : *"path to your perl script on the resource".*
The scripts are all located in the home directory of the administrator-user (which is where I assume they should be). 
Just noticed something strange in the script you posted:
#
if [ "${WSUSER_accountId}xxx" = "$(accountId)" ]; then             <-------HERE
echo "WSUSER_accountId environment variable not defined."
exit 118
fi
if [ "${WSRSRC_NAME}xxx" = "Shell Script" ]; then          <------- and HERE
echo "WSRSRC_NAME environment variable not defined."
exit 119
fiLooks like you've already hacked it )). Since such modifications have no sense I recommend to revert it back to 'xxx'
So your line to run script should look like (modify it appropriatly)
/export/home/idmagent/CreateUser.shCreateUser.sh script must begin with something like:
#!/usr/bin/bash
...
Also you might want to try to redicect script's standard output to error stream. This way any messages form script will be displayed in IDM.
/export/home/idmagent/CreateUser.sh 1>&2 
Thanks again, Andrey
Just so I understand correctly, this is what I should use to replace the "mkuser ./$WSRSRC_NAME" :
*/export/home/michael/CreateUser.pl*
where *"michael"* is the user with which I logged into the unix machine (the user, whose credentials IDM uses to connect to the unix machine);
*"CreateUser.pl"* is the script itself.
The script is a PERL script, which is why I used *.pl*, and not *.sh* (I hope this is correct)
Also, the script contains the header : */usr/bin/perl* (I hope this is also correct)
One more question : what about the Result Handler? If I am going to CREATE USER, shouldn't there be another script to handle the Result?
Thanks again. 
MichaelSt wrote:
Thanks again, Andrey
Just so I understand correctly, this is what I should use to replace the "mkuser ./$WSRSRC_NAME" :
*/export/home/michael/CreateUser.pl*
where *"michael"* is the user with which I logged into the unix machine (the user, whose credentials IDM uses to connect to the unix machine);
*"CreateUser.pl"* is the script itself.
The script is a PERL script, which is why I used *.pl*, and not *.sh* (I hope this is correct)Above that line everything is absolutely correct.
>
Also, the script contains the header : */usr/bin/perl* (I hope this is also correct)
No. The first line of the script has to be:
#!/usr/bin/perl
(hash, exclamation mark and fullpath to perl executable)
You might want to read this for example: http://www.lies.com/begperl/hello_command.html
>
One more question : what about the Result Handler? If I am going to CREATE USER, shouldn't there be another script to handle the Result?Definitely. Result Handler is mandatory if I remember correctly. 
Thanks.
I modified the script, and tried to Create User.
I got the following error :
com.waveset.util.WavesetException: An error occurred adding user 'bknowles' to resource 'Unix Administration'.
com.waveset.util.WavesetException: Script failed waiting for "_,)#+(:" in response ""
com.waveset.util.WavesetException: Script processor timed out with nothing to read and the following unprocessed text: "".
I think I understand why.
You see : when I execute the "create-user" script on my Unix machine, I am prompted for INPUT for each and every parameter.
For example : the first prompt I get is *"UserID"*.
When I input the User ID, and press Enter, then I get the next prompt, asking for *"Full Name"*, etc, etc, etc
In other words : the script works only if data (parameters) are input at each prompt.
By trying to execute the script from IDM, it *"freezes"*, because ---- of course ---- it is not getting input.
Is there anyway to automatically provide all the necessary data (parameters/attributes) from IDM, so that the script will proceed to create the new User?
Thanks. 
OK.
I created an entirely new script, which allows me to CAPTURE the data (parameters) from IDM, and use them to create a new user.
It worked (or, it seemed to work).
In IDM, i got the following error :
*Error detected: [Adding account to hosts and creating quotas]&amp;amp;amp;#xD;&amp;amp;amp;#xA;Default shell for netpasswd is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;#xD;&amp;amp;amp;#xA;Default shell for sui-dev is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;#xD;&amp;amp;amp;#xA;Default home path for sui-dev is /home. This can be changed later.Default shell for ssl3 is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;#xD;&amp;amp;amp;#xA;Default shell for sui-test is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;#xD;&amp;amp;amp;#xA;Default home path for sui-test is /home. This can be changed later.[Adding user to groups]&amp;amp;amp;#xD;&amp;amp;amp;#xA;[Creating home directory]&amp;amp;amp;#xD;&amp;amp;amp;#xA;DUMMY - ssh -2 -l root sui-dev "/usr/alt/uadm2/libexec/mkhome sui-dev /users1/u1/mjerome 44444 500 550 mjerome"&amp;amp;amp;#xD;&amp;amp;amp;#xA;DUMMY - ssh -2 -l root sui-test "/usr/alt/uadm2/libexec/mkhome sui-test /users1/u1/mjerome 44444 500 550 mjerome"&amp;amp;amp;#xD;&amp;amp;amp;#xA;[all done].*
Result Code = 120.
Error
*com.waveset.util.WavesetException: An error occurred adding user 'mjerome' to resource 'Unix Administration'. com.waveset.util.WavesetException: Error detected: . com.waveset.util.WavesetException: Error detected: [Adding account to hosts and creating quotas]
Default shell for netpasswd is /usr/alt/uadm2/bin/nologin. This can be changed later.
Default shell for sui-dev is /usr/alt/uadm2/bin/nologin. This can be changed later.
Default home path for sui-dev is /home. This can be changed later.Default shell for ssl3 is /usr/alt/uadm2/bin/nologin. This can be changed later.
Default shell for sui-test is /usr/alt/uadm2/bin/nologin. This can be changed later.
Default home path for sui-test is /home. This can be changed later.[Adding user to groups]
[Creating home directory]
DUMMY - ssh -2 -l root sui-dev "/usr/alt/uadm2/libexec/mkhome sui-dev /users1/u1/mjerome 44444 500 550 mjerome"
DUMMY - ssh -2 -l root sui-test "/usr/alt/uadm2/libexec/mkhome sui-test /users1/u1/mjerome 44444 500 550 mjerome"
[all done]. com.waveset.util.WavesetException: Result Code = 120.*
From what is written there, I could see that the user was INDEED created. (Just to be sure, I checked my Unix machine. And, yes, the user was created)
However, I keep getting the above error in IDM.
I can't figure out any explanation besides the fact that, perhaps, this is because I do not have a RESULT HANDLER script in place yet.
Could this be it? 
All left-handed attributes on the Resource Schema page are available to your script via ENVIRONMENT VARIABLES during the run-time with a prefix WSUSER_
Adapter configuration parameters are also available with a perfix WSRSRC_
(See the 'Scripts' part of Shell Script chapter in the Resource Reference 8.1.)
In a Perl you can access environment variables this way
$userAccountId = $ENV{'WSUSER_ACCOUNTID'}
$userPassword = $ENV{'WSUSER_PASSWORD'}
...
etc 
Thanks, but I already knew about the Variables.
I was more interested in the reason for that error I keep getting when I create user.
I was wondering if it had to do with Result Handling.
I don't have any Result Handlers in place; nor do I know how to go about creating it. (there are no documentations available for this)
That's why I asked if you had any ideas. 
Another weird thing : some documentation on Shell Script say that Result Handlers are needed only for two Actions : GetUser and GetAllUsers.
However, other documents claim that Result Handlers are needed for ALL resource actions. (In other words, if you have a Create User resource action, then you must have a Create-User result handler).
I don't even know which of these claims is true. 
Hi,
Have you been able to resolve this issue?
I am currently working on configuring a Shell Script Resource on my IDM system.
I am still in the "*Create User"* stage of things (I haven't even begun working with the other Actions : Get User, Get All Users, Delete User, Update User)
After a month-long period of trial-and-error, and a lot of headaches, I finally succeeded in Creating a new user on my Unix Machine, without any errors
Except for one thing : for some reason, the user I create is not being given a password!
A first, I configured the "Attribute Mapping" page to include a "Password" attribute. This did not work.
Then I removed the password from there (I figured that when I input the user's basic information on the IDENTITY tab in IDM, then the password gets automatically passed to the Unix machine).
Still, this did not work.
The funniest thing is : I am not getting any errors. The user is created on my Unix machine. And, also, in my My-SQL database.
The problem is : when I try to log into that same Unix machine as the user, it does not work, because......of course.....*.there is NO PASSWORD*.
What could be the problem?

DTrace compilation error

Hi,
I'm adding DTrace probes to MySQL and MySQL Cluster code and have some
strange issues when building the dtrace .o file using the dtrace -G -s command.
A subset of the collections I use are the following:
probe start_acckeyreq(int op_ptr);
probe end_acckeyreq();
probe start_acckeyreq_lockwait(void*, int);
probe end_acckeyreq_lockwait(int op_ptr);
The one that creates a problem is the start_acckeyreq_lockwait(void*, int);
In the code this looks like the following:
int int_val= operationRecPtr.i;
void *ptr_val= operationRecPtr.p;
jam();
signal->theData[0] = RNIL;
NDB_BLOCKS_START_ACCKEYREQ_LOCKWAIT(ptr_val, int_val);
return;
When executing dtrace -G -s ndb_blocks_dtrace.d DbaccMain.o
the output is (compilation of the cpp file goes fine:
dtrace -G -s ndb_blocks_dtrace.d DbtupExecQuery.o DbtupCommit.o DbaccMain.o DbdihMain.o DbtcMain.o DblqhMain.o
dtrace: failed to link script ndb_blocks_dtrace: an error was encountered while processing DbaccMain.o
I haven't figured out any way to get more information. By trial and error I've discovered that it is this probe that is the
problem, but I don't see any issue with it. I've also had other issues of similar kind with even simpler functions with only
an int parameter. I don't find any logic why the faulty ones are faulty and the correct ones are correct, any ideas would be
helpful here.
Rgrds Mikael Ronstrom

Command to find permission in octal value

Hi All,
Is there a way to find out the permission of a file in octal value. ls -l will give in rwx format. But I need this in octal format like 655. To explain the use case,
When i start a script I need to get the permission of file and store it in a variable. Will change the permission of the file during the script execution. The last command in the script should revert back the permission of the file. I am using chmod for doing the same. When I google, I saw a command like stat, but this seems to be C module. Is there any way to do the same using standard commands.
Thanks In Advance,
Veerabahu 
stat is also a command commonly installed on Linux, but it doesn't come with Solaris 9. You could compile and install it.
I'd probably use perl for my script, then you can call stat directly within perl while you're doing things.
#!/usr/bin/perl
my $file = "/tmp/file";
my $new_mode = 0421;
my $orig_mode = (lstat($file))[2] & 07777;
printf "Current mode of file is %o\n", $orig_mode;
system ("ls -l $file");
printf "Changing mode to %o\n", $new_mode;
unless (chmod $new_mode, $file)
  { die "chmod of $file failed.  $!\n"; }
system ("ls -l $file");
printf "Changing mode back to original (%o)\n", $orig_mode;
chmod $orig_mode, $file;
system ("ls -l $file");--
Darren 
/usr/bin/pkgproto filename
the fourth field contains the file permissions in octal format
Thanks to Martin for the tip on this thread
[http://www.phwinfo.com/forum/comp-unix-shell/244208-ls-cant-display-octal-permissions.html] 
Thanks a lot !! That worked out amazingly :)

IDM Shell Script Adapter

Hello,
I'm having a lot of trouble implementing the shell script adapter for use with a Linux resource.
I cannot use an out of the box adapter.
My approach is to implement Actions for Get User, Create User, Delete User, Modify User, and List All Objects.
Basically List All Objects and Get User will go through the /etc/passwd file and pull out the pertinent data.
I think I need to use an AttrParse as well to figure out which field is which.
Has anyone else done this? Am I doing this correctly? I'm having some trouble with this, specifically, when doing the reconcile, I get all sorts of parsing errors.
Here's some sample action/AttrParsers. They are a bit of a hodgepodge, as I've been doing a lot of trial and error.
Thanks for any help.
<ResourceAction name='Linux-Get All Users Action'>
<ResTypeAction restype='Shell Script' actionType='UnixShell'>
<act>
#!/bin/bash
echo "=====Get All Users Action - `date`" >> log.txt
cat /etc/passwd | grep "/home"> passwd.txt
awk '{print "USERS=" $0}' passwd.txt > passwd-final.txt
cat "Account ID"
cat passwd.txt
exit 0
# exit $DISPLAY_INFO_CODE if there is not a failure, but you want
# the output to be propagated to the UI
</act>
</ResTypeAction>
</ResourceAction>
<ResourceAction name='Linux-Get User Action'>
<ResTypeAction restype='Shell Script' actionType='UnixShell'>
<act>
echo "=====Get User Action - `date`" >> log.txt
echo $WSUSER_accountId >> log.txt
#
if [ "${WSUSER_accountId}xxx" = "xxx" ]; then
echo "WSUSER_accountId environment variable not defined."
exit 129
fi
if [ "${WSRSRC_NAME}xxx" = "xxx" ]; then
echo "WSRSRC_NAME environment variable not defined."
exit 130
fi
echo `grep ^$WSUSER_accountId /etc/passwd | cut -d: -f1` > users.txt
echo `grep ^$WSUSER_accountId /etc/passwd
exit 0
</act>
</ResTypeAction>
</ResourceAction>
<AttrParse name="Linux-List All Objects AttrParse">
<multiLine opt="true">
<collectCsvHeader idHeader='Account ID' nameHeader='Full Name' delim=':' trim='true'/>
<skipLinesUntil/>
<collectCsvLines trim='true' unQuote='true'/>
</multiLine>
</AttrParse>
<AttrParse name="Linux-Get User AttrParse">
<str name="Account ID" trim="true" len="-1"/>
</AttrParse> 
The native adapter looks at a lot more than just /etc/passwd. It'll go through your last login logs, and things like that (on solaris, its even more elaborate, with it looking into auths, roles, etc.)
Problem with parsing is that you have to be sure what text the box is echoing in response to your commands. If you are running into parsing errors, the best way to iron them out would be to run the same commands from a prompt (same env as your IDM connecting user). You should be able to reproduce the problem there. In the shell scripts / commands, be sure to account for special characters or anything that may be interpreted by the shell.
I am not sure how legal this is, but decompiling the existing adapter in idmadapter.jar can sometimes be insightful. Someone from Sun would be able to comment better on the legal aspect of this.
Cheers!
Ankush 
Thanks for the suggestion.
I know the out of box adapters do a lot more, I am just not able to use them in this case.
In my easiest, simplest scenario, if I just get the user names out of /etc/passwd and echo them to the Shell Script Adapter, I'll get a list back like this:
username1,
username2,
username3,
root
etc,etc.
The problem I'm having seems to be in my AttrParse.
Since this is just usernames, my AttrParse is just this:
<AttrParse name="Linux-Username AttrParse">
<str name="Account ID" trim="true" len="-1"/>
<skipToEol/>
</AttrParse>
However, this isn't working in the slightest. I get an exception thrown:
com.waveset.util.WavesetException: Unexpected character at index 1
at com.waveset.util.ParseStringCharacterIterator.bypass(ParseStringChara
cterIterator.java:149)
at com.waveset.util.ParseStringCharacterIterator.skipPast(ParseStringCha
racterIterator.java:91)
at com.waveset.util.ParseStringCharacterIterator.getToEol(ParseStringCha
racterIterator.java:175)
at com.waveset.object.AttrParse$StringToken.parse(AttrParse.java:490)
at com.waveset.object.AttrParse.parse(AttrParse.java:1384)
at com.waveset.object.AttrParse.parse(AttrParse.java:1355)
at com.waveset.object.AttrParse.parse(AttrParse.java:1345)
at com.waveset.adapter.ShellScriptResultHandlerAttrParse.getListAllObjec
tsResult(ShellScriptResultHandlerAttrParse.java:629)
at com.waveset.adapter.ShellScriptResourceAdapter.getListAllObjectsResul
t(ShellScriptResourceAdapter.java:1175)
at com.waveset.adapter.GenericScriptResourceAdapter.listAllObjects(Gener
icScriptResourceAdapter.java:1396)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:701)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:1242)
at com.waveset.adapter.ResourceAdapterProxy.getAccountIterator(ResourceA
dapterProxy.java:920)
at com.waveset.recon.ResourceContext.iterateResourceAccounts(ResourceCon
text.java:1129)
at com.waveset.recon.ReconTask$ResourceThread.examineResource(ReconTask.
java:846)
at com.waveset.recon.ReconTask$ResourceThread.reconcileResource(ReconTas
k.java:714)
at com.waveset.recon.ReconTask$ResourceThread.run(ReconTask.java:540)
WavesetException: Unexpected character at index 2
com.waveset.util.WavesetException: Unexpected character at index 2
at com.waveset.util.ParseStringCharacterIterator.bypass(ParseStringChara
cterIterator.java:149)
at com.waveset.util.ParseStringCharacterIterator.skipPast(ParseStringCha
racterIterator.java:91)
at com.waveset.util.ParseStringCharacterIterator.getToEol(ParseStringCha
racterIterator.java:175)
at com.waveset.object.AttrParse$StringToken.parse(AttrParse.java:490)
at com.waveset.object.AttrParse.parse(AttrParse.java:1384)
at com.waveset.object.AttrParse.parse(AttrParse.java:1355)
at com.waveset.object.AttrParse.parse(AttrParse.java:1345)
at com.waveset.adapter.ShellScriptResultHandlerAttrParse.getListAllObjec
tsResult(ShellScriptResultHandlerAttrParse.java:629)
at com.waveset.adapter.ShellScriptResourceAdapter.getListAllObjectsResul
t(ShellScriptResourceAdapter.java:1175)
at com.waveset.adapter.GenericScriptResourceAdapter.listAllObjects(Gener
icScriptResourceAdapter.java:1396)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:701)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:1242)
at com.waveset.adapter.ResourceAdapterProxy.getAccountIterator(ResourceA
dapterProxy.java:920)
at com.waveset.recon.ResourceContext.iterateResourceAccounts(ResourceCon
text.java:1129)
at com.waveset.recon.ReconTask$ResourceThread.examineResource(ReconTask.
java:846)
at com.waveset.recon.ReconTask$ResourceThread.reconcileResource(ReconTas
k.java:714)
at com.waveset.recon.ReconTask$ResourceThread.run(ReconTask.java:540)
WavesetException: Unexpected character at index 3
com.waveset.util.WavesetException: Unexpected character at index 3
at com.waveset.util.ParseStringCharacterIterator.bypass(ParseStringChara
cterIterator.java:149)
at com.waveset.util.ParseStringCharacterIterator.skipPast(ParseStringCha
racterIterator.java:91)
at com.waveset.util.ParseStringCharacterIterator.getToEol(ParseStringCha
racterIterator.java:175)
at com.waveset.object.AttrParse$StringToken.parse(AttrParse.java:490)
at com.waveset.object.AttrParse.parse(AttrParse.java:1384)
at com.waveset.object.AttrParse.parse(AttrParse.java:1355)
at com.waveset.object.AttrParse.parse(AttrParse.java:1345)
at com.waveset.adapter.ShellScriptResultHandlerAttrParse.getListAllObjec
tsResult(ShellScriptResultHandlerAttrParse.java:629)
at com.waveset.adapter.ShellScriptResourceAdapter.getListAllObjectsResul
t(ShellScriptResourceAdapter.java:1175)
at com.waveset.adapter.GenericScriptResourceAdapter.listAllObjects(Gener
icScriptResourceAdapter.java:1396)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:701)
at com.waveset.adapter.ShellScriptResourceAdapter.getAccountIterator(She
llScriptResourceAdapter.java:1242)
at com.waveset.adapter.ResourceAdapterProxy.getAccountIterator(ResourceA
dapterProxy.java:920)
at com.waveset.recon.ResourceContext.iterateResourceAccounts(ResourceCon
text.java:1129)
at com.waveset.recon.ReconTask$ResourceThread.examineResource(ReconTask.
java:846)
at com.waveset.recon.ReconTask$ResourceThread.reconcileResource(ReconTas
k.java:714)
at com.waveset.recon.ReconTask$ResourceThread.run(ReconTask.java:540)
WavesetException: Unexpected character at index 5
com.waveset.util.WavesetException: Unexpected character at index 5
And over and over again for each character.
This is the crux of my current problem. Any suggestions on how to fix my Attribute Parser?? 
Hi, jsizzle.
Have you been able to resolve this issue?
I am currently working on configuring a Shell Script Resource on my IDM system.
I am still in the "*Create User"* stage of things (I haven't even begun working with the other Actions : Get User, Get All Users, Delete User, Update User)
After a month-long period of trial-and-error, and a lot of headaches, I finally succeeded in Creating a new user on my Unix Machine, without any errors
Except for one thing : for some reason, the user I create is not being given a password!
A first, I configured the "Attribute Mapping" page to include a "Password" attribute. This did not work.
Then I removed the password from there (I figured that when I input the user's basic information on the IDENTITY tab in IDM, then the password gets automatically passed to the Unix machine).
Still, this did not work.
The funniest thing is : I am not getting any errors. The user is created on my Unix machine. And, also, in my My-SQL database.
The problem is : when I try to log into that same Unix machine as the user, it does not work, because......of course.....*.there is NO PASSWORD*.
What could be the problem?

a script to monitor a file in S11 ?

hello all,
i need to find which process access a particular lib in Solaris 11. Unfortunately, iosnoop in DTraceToolkit-0.99 doesn't work anymore. Nor the script found in /usr/demo/dtrace:
root#antigone:~# dtrace /usr/demo/dtrace/iosnoop.d /tmp/toto
dtrace: no probes specified
Are there other sources of dtrace scripts for S11 ?
thanks i, advance for help,
gerard 
ok, found the existence of /usr/dtrace/DTT, wich works, but i have a question:
i found which process is using the uncorrect lib, by using opensnoop and grep:
/usr/dtrace/DTT/Bin/opensnoop|grep mysql
...
80 18488 opac-export.pl 5 /usr/mysql/5.0/lib/mysql/libmysqlclient.so.15
Trying to use the following command (the process and the lib are in NGZ):
/usr/dtrace/DTT/Bin/opensnoop -f libmysqlclient.so.15
UID PID COMM FD PATH
gives no results at all!
What am i doing wrong? 
Are there other sources of dtrace scripts for S11 ?I'm currently working on updating and refreshing the DTT. See Doc ID 1428139.1 - "DTraceToolkit - A Collection Of Useful DTrace Scripts". This project will get the current scripts working on S10 and S11 and introduce new useful scripts. It's a very time consuming project, which I'm doing on my own time, so will take me a while to get a new version pushed out.
/usr/dtrace/DTT/Bin/opensnoop -f libmysqlclient.so.15
UID PID COMM FD PATH
gives no results at all!
What am i doing wrong?Two probable causes
1) opensnoop used the following probes:
syscall::open:entry, syscall::open64:entry
syscall::open:return, syscall::open64:return
In Solaris 11, open() and open64() system calls (and many more) changed to *at, eg:
ID PROVIDER MODULE FUNCTION NAME
9912 syscall openat entry
9914 syscall openat64 entry
So the probes you have won't fire. Also note that the arguments to open() Vs openat() are different
int open(const char path, int oflag, / mode_t mode */);
int openat(int fildes, const char path, int oflag, / mode_t mode */);
You'll need to modify the opensnoop to change the probes and args.
2) Secondly you need to specify the full path including the filename, not just the filename itself. Try
$ /usr/dtrace/DTT/Bin/opensnoop -f "/usr/mysql/5.0/lib/mysql/libmysqlclient.so.15"
HTH
Steve

Categories

Resources