Case study 41: How I solved ks_falloc: Cannot allocate using ubfalloc error
  • Platforms: Solaris 10, maybe others
  • SAP ASE version: I found it on 15.0, but there are also reported on 15.5 and 15.7
  • Background story: At 5 AM I've got a call from our Service Desk, saying that our production monitoring system encountered strange error in Sybase server log. When I connected, and checked ASE error log, I've found following error:

    ks_falloc: Cannot allocate using ubfalloc(rnetmempool, 2097152).
    ks_falloc: Cannot allocate using ubfalloc(rnetmempool, 2097152).
    SSL or Crypto Error Message: 'sybcsi_profile_set_string_value'.
    SSL or Crypto Error Message: 'csi_digest_setup'.

    It looked very nasty and I must admit that I was scared how I am going to deal with this. Luckily, company I worked for have a regular support from SAP, and first thing I did, was to check SAP knowledge base.
  • Task: Solve an error, and remove that error showing in Sybase log file.
  • Solution:Acording to SAP KB documentation, there could be two reasons for this error. First is that there is some issue with network memory or some memory fragmenation because of memory not being freed, and second possible reason is that there is a small memory leak in network memory, descibing my specific case, i.e. open an isql connection using -X parameter.
    They are offering several solutions: Increasing "additional network memory" parametar in Sybase - I've tried that and it did not solve my problem.
    Another solution was to restart Sybase ASE on regular basis to reduce memory fragmentation for the network memory - becuase I was not able to find any business reason for this, meaning that, except error in log file, I could not find that any application is affected by this error, I was not able to get approval for restarting 24x7 busy system.
    So, I did not solve a root of a problem (memory fragmentation), I've solve it in a way that I do not trigger this error to happened. Becuase we had lots of jobs running over this database, and these jobs are executed as SQL statements run by isql tool, I've looked at how this isql command line is formed, and I found that it is run by -X parameter, meaning that we are using client side encryption. Since there were other jobs which were run without that parameter, I was convinced that I can remove this -X from isql call. After I removed it, there were no errors in ASE log. So, this solution does not reduce memory fragmentation, but does supress this error for showing in log. I think that right solution would be that SAP fix this issue, or to restart ASE database server, and thus reduce memory fragmentation. But, in real production systems, this is not the solution.
  • Conclusion:Again, it is good to have SAP support contract and their help and Knowledge Base on Your side!
   
  powered by myself. DBA-Sybase 2006